길벗 코딩자율학습단 4일차

donghan378·2025년 1월 12일

4일차

~4.2 롬복을 활용해 리팩터링하기(종이책 p127~151)

3.4 DB 데이터 조회하기

이 절에서는 SQL 문법인 SELECT문과 INSERT문으로 DB에 저장된 데이터를 조회하고 삽입해본다.

H2 DB 접속하기

  1. H2 DB에 웹 콘솔로 접근할 수 있도록 허용하기 위해 src/main/resources에 있는 application.properties 파일에 spring.h2.console.enabled=true 작성
  2. 웹 브라우저에서 localhost:8080/h2-console 페이지 접속
  3. JDBC URL 부분에 DB 접근 주소를 입력해주기
    • 인텔리제이의 Run 탭으로 가서 Ctrl+F를 눌러 jdbc를 검색하고 나온 ‘jdbc:h2:mem: ・・・’ 에서 ‘・・・’부분이 메모리 주소이다. 이 주소는 서버를 재시작할 때마다 바뀐다.
    • ‘jdbc:h2:mem: ・・・’부분을 JDBC URL 부분에 넣어주고 connect 한다.

데이터 조회하기

  1. DB 화면 왼쪽에 ARTICLE 테이블을 클릭하면 오른쪽에 SELECT * FROM ARTICLE 이라는 SQL문이 나온다.
  2. Run을 클릭하면 key값들만 나오고 데이터가 존재하지 않는다.
    • H2 DB는 모든 입출력을 메모리 모드에서 돌리기 때문에 서버를 재시작하면 DB에 저장된 내용이 사라진다.
    • 데이터는 테이블에 행 단위로 저장되는데 이러한 행 하나하나를 레코드(record) 라고 부른다.
  3. localhost:8080/articles/new에서 제목과 내용을 입력한후 Submit하면 DB에 레코드가 들어간 것을 확인할 수 있다.
  4. SQL문으로 직접 레코드를 삽입하려면 DB 입력창에 INSERT 문을 작성한후 Run하면 된다.
INSERT INTO 테이블명(속성명1, 속성명2, ・・・) VALUES(값1, 값2, 값3, ・・・);

ex) INSERT INTO article(id, title, content) VALUES(3, ‘ccccc’, ‘3333’);

4장 롬복과 리팩터링

4.1 롬복이란

롬복(lombok)이란 코드를 간소화해 주는 라이브러리이다.

롬복을 이용하면 필수 코드를 간편하게 작성할 수 있으며, 로깅 기능을 이용하면 println()문을 개선할 수 있다.

로깅(logging)이란 프로그램의 수행 과정을 기록으로 남기는 것을 말한다.

리팩터링(refactoring)이란 코드의 기능에는 변함이 없이 코드의 구조 또는 성능을 개선하는 작업을 말한다.

이번 장에서는 롬복으로 코드를 리팩토링해본다.

4.2 롬복을 활용해 리팩터링하기

롬복 설치하기

  1. firstproject/src/build.gradle에 롬복을 추가한다.

    • 코드 중간에 dependencies {}블록에 다음과 같은 코드를 작성한다.
        compileOnly ‘org.projectlombok:lombok’
    
        annotationProcessor ‘org.projectlombok:lombok’
    
    • dependencies 블록에는 프로젝트를 생성할 때 추가한 도구들이 적혀있다.
  2. 편집기에 나타난 코끼리 모양의 새로 고침(Load Gradle Changes) 버튼을 클릭하면 추가한 코드를 탐지해 라이브러리를 자동으로 다운받는다.

DTO 리팩터링하기

com.example.firstproject/dto/ArticleForm을 연다.

  1. ArticleForm() 생성자 간소화
    1. ArticleForm() 생성자 코드 전체를 지운다.
    2. ArticleForm 클래스 위에 @AllArgsConstructor 어노테이션을 추가한다. 이렇게 하면 title과 content를 매개변수로 하는 생성자가 자동으로 만들어진다.
  2. toString() 메서드 간소화
    1. toString() 메서드 코드 전체를 지운다.
    2. @ToString 어노테이션을 추가하면 toString() 메서드를 사용하는 것과 같은 효과가 난다.

엔티티 리팩터링하기

  1. com.example.firstproject/entity/Article을 연다.
  2. Article() 생성자와 toString() 메서드를 지우고 @AllArgsConstructor와 @ToString 어노테이션을 붙인다.

컨트롤러에 로그 남기기

com.example.firstproject/controller/ArticleController를 연다.

이전에 println() 문을 통해서 데이터 출력을 하도록 하였는데, 실제 서버에서 이렇게 출력하면 기록에 남지 않을뿐더러 서버의 성능에도 악영향을 끼친다.

따라서 로깅 기능을 이용해야 한다.

  1. ArticleController 클래스 위에 @Slf4j 어노테이션을 추가한다.
    • Slf4j는 Simple Logging Facade for Java의 약자로, 로깅 기능을 사용할 수 있게 해준다.
  2. System.out.println() 문을 주석처리하고 log.info() 문으로 바꾼다.

0개의 댓글