개발 공부 기록 49

[SpringBoot] 프로젝트 만들 때 들어가는 Group? Artifact? 얘내는 뭐지?

서론 맨날 스프링 부트 프로젝트를 만들면서도, Group, Artifact, 이런 놈들이 뭔지도 모르고 사용했던게 생각나서, 이 기회에 정리해서 적어두려고 한다. 본론 이다 그래서 Package name 이 Group + Artifact 인 것이다.. 결론 결론은 Group => 회사명을 의미하고, Artifact => 프로젝트 이름을 의미한다. 별 뜻은 없다..

IntelliJ에서 React 프로젝트에 AirBnB의EsLint를 설정해보자.

1. 일단, git에서 가져온 프로젝트에 react 모듈을 추가해준다.Project Structure (Ctrl + Alt + Shift + S) 에서 사진처럼 모듈을 import 해준다. 그러면,위와같이 프로젝트가 잘 생성됨을 알 수 있는데, 이제 Lint를 깔아보자.  2. ESLint 설치여러 블로그들을 참고하였다. 터미널에서 다음과 같이 입력해주자.npm install --save-dev eslint 그러고 나서, Actions 창 (Ctrl + Shift + a) 에서 다음과 같이 설치됨을 확인 할 수 있다. 보통 자동으로 config를 잡아주기 때문에, 인텔리제이에서 해줄건 끝났고, 이후론 npm에서 설정해준다. 3. Airbnb Style 설치npx install-peerdeps --dev ..

Spring Boot에서 MQTT 사용해보기

MQTT란? Message Queue for Telemetry Transport로써, IoT기기와 게이트웨이가 통신하기 위해 만들어진 프로토콜이다. MQTT의 특징 Connection oriented: 연결된 클라이언트와 브로커 간에 지속적인 연결을 유지하기 위한 세션을 사용 퍼블리셔(publisher)와 서브스크라이버(subscriber) : 퍼블리셔는 특정 주제(Topic)에 대한 메세지를 보내고, 서브스크라이버는 그 주제(Topic)를 구독하여 메세지를 받는다. 브로커(Borker): MQTT 메세지를 중개하고 관리하는 서버. 클라이언트(퍼블리셔 역할을 함)는 브로커에 연결하여 메세지를 발행 or 수신한다. QOS(Quality of Service): 메시지의 전달 품질을 나타내는 등급. 0, 1,..

Mybatis 기본적인 사용법 정리

Mybatis 사용법 보통 mybatis는 2가지 사용법이 있다고 한다. 1. Java 코드에 SQL을 작성하기 2. XML 안에 SQL을 작성하기 요즘 빌드파일도 xml이 아닌 kotlin으로 지원하는 형국이니 2번은 차차 알아보고 일단 1번부터 알아보도록 하겠다. 1. 테이블 생성 위와 같은 테이블을 만들었다. 이름은 computer라고 하자. 2. Mapper 인터페이스 생성 repository 하위에 computer 패키지를 생성해주고, @Mapper public interface ComputerMapper { //CRUD 작성 @Select("SELECT * FROM computer") List findAll(); } 위와같이 작성해준다. 3. Computer 클래스 작성 및 컨트롤러 작성 Co..

SpringBoot와 MongoDB 연동하기

1. mongoDB설치 Try MongoDB Community Edition Try MongoDB Community Edition on premise non-relational database including the Community Server and Community Kubernetes Operator for your next big project! www.mongodb.com 에서 MongoDB Community Server를 받아 설치해준다. 보통 mongoDB compass도 같이 설치할 것인데, 위와같이 Databases쪽에 사용할 db를 생성해준다. 또한, RDB의 Table과 비슷한 개념인 Collection(콜렉션)을 생성해준다. 2. Spring Boot 프로젝트 생성 MongoDB ..

JPA, Hibernate, Spring Data JPA란?

Spring Boot에서 SQL을 직접 사용하는 것은 단점이 존재한다. SQL을 작성하기 때문에 실수할 수 있고, 실수 인지 시점이 느리다. 컴파일 에러가 안나고, 런타임 오류가 나기 때문이다. 즉, 서버 동작에는 SQL문의 오타는 아무런 지장이 없기 떄문이다. 특정 데이터베이스에 종속적이게 된다. 반복작업이 많아진다. 데이터베이스의 테이블과 객체는 패러다임이 다르다 ( 상속, 연관관계 등) => 이를 해결하기 위해 만든것이 JPA다. JPA? Java Persistence API의 약자로 자바 진영의 ORM이다. Persistence : 영속성, 서버가 재시작되어도 데이터는 영구적으로 저장되는 속성 (데이터베이스 등) ORM? Object-Relational Mapping, 즉 자바 클래스(객체)와 테..

스프링 컨테이너를 다루는 방법

스프린 컨테이너에 빈을 등록하는 방법, 가져오는 방법에 대해 알아보자 빈을 등록하는 방법 @Service, @Repository, @Controller 말고도 다음 두개의 어노테이션을 활용해 스프링 빈으로 등록할 수 있다. @Configuration: 클래스에 붙이는 어노테이션으로, @Bean을 사용할 때 함께 사용해 주어야 한다. @Bean: 메소드에 붙이는 어노테이션, 메소드에서 반환되는 객체를 스프링 빈에 등록한다. 아래 예시 코드를 보자. @Repository public class UserRepository { } 원래는 위와 같이 @Repository 어노테이션을 통해 빈으로 등록한다. 허나 @Configuration public class UserConfiguration { @Bean pub..

스프링 빈과 스프링 컨테이너란?

간단한 코드를 하나 작성해 보겠다. @RestController public class Controller { private final Service Service; public Controller(JdbcTemplate jdbcTemplate) { Service = new Service(jdbcTemplate); } } Java에서는 static이 아닌 이상 인스턴스화 해줘야 하는데, 이 Controller 코드에는 인스턴스화가 없다. Controller를 생성하기 위해선 JdbcTemplate가 필요하다. 이를 JDBC 템플릿에 의존한다. 는 것인데, JdbcTemplate클래스를 설정해 준적이 없다. 스프링에서 위와 같은 설정을 해주는 것은 스프링 빈이다. @RestControll 어노테이션은, 해..

Spring Boot에서 Database 접근해서 사용하기

내가 아닌 스프링이 디비에 접근할 수 있도록 해보자. 스프링 서버가 디비에 접근하기 위해선, application.yml 파일이 있어줘야 한다. src/main/resources에 application.yml을 생성해주자. application.yml을 다음과 같이 작성한다. 이후, controller 코드를 다음과 같이 작성해준다. JdbcTemplate 클래스를 통해 MySQL에 SQL을 보낼 수 있다. sql을 parameterized query하여 보안성을 높이고, 확장성을 넓혀준다. 이러면, DB에 저장이 잘 됨을 확인할 수 있다.

SQL - DDL, DML 정리

DDL(Data Definition Language)은 데이터를 정의하기 위한 SQL이다. 데이터 베이스 만들기 create database [데이터베이스 이름]; 테이블을 담기 위한 데이터베이스를 만드는 것이다. 데이터베이스 목록보기 show databases; 데이터베이스 삭제하기 drop database library; 데이터베이스 안으로 들어가기 use [데이터베이스 이름]; 테이블 목록 보기 show tables 테이블 만들기 create table [ 테이블 이름 ] ( [필드1 이름] [타입] [부가조건], [필드2 이름] [타입] [부가조건], ... primary key ([필드이름]) ); ex) 과일 테이블의 ID, 이름, 가격, 출고일자 필드를 만들고자 할때, 이렇게 SQL 문을 작..