Java 14

API

API를 만들기 위해 총 3개의 클래스가 필요한데 · Request 데이터를 받을 Dto · API 요청을 받을 Controller · 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service · Web Layer - Controller, JSP/Freemarker 등의 뷰 템플릿 영역 - 이외에도 필터, 인터셉터, 컨트롤러 어드바이스 등 외부 요청과 응답에 대한 전반적인 영역 · Service Layer - @Service에 사용되는 서비스 영역 - 일반적으로 Controller와 Dao의 중간 영역에서 사용 - @Transactional이 사용되어야 하는 영역이기도 함 · Repository Layer - 데이터베이스와 같이 데이터 저장소에 접근하는 영역 · Dtos - Dtos는 Dto들의 영역이..

JPA

JPA - 자바 표준 ORM * ORM(Object Relational Mapping, 객체 관계 매핑) : 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것 객체를 관계형 데이터베이스에서 관리하는 것이 무엇보다 중요한다. 1. 그런 과정에서 SQL문이 계속 반복될 수 있는데 반복되는 문제가 있다. 2. 관계형 데이터베이스와 객체지향 프로그래밍 언어의 패러다임이 서로 다른데, 객체를 데이터베이스에 저장하려고 하니 발생하는 문제가 패러다임 불일치이다. JPA는 이런 문제점들을 해결하기 위해 등장했는데 객체지향 프로그래밍 언어와 관계형 데이터베이스를 중간에서 패러다임 일치를 시켜주기 위한 기술이다. 즉, 개발자가 객체지향적으로 프로그래밍을 하고, JPA가 이를 관계형 데이터베이스에 맞게 S..

스프링 기초

Spring : Java 언어를 바탕으로 서버를 담당, 요청에 따라서 눈에 보이는 것들 or 데이터를 제공해준다. - 자바의 클래스 중 private 정보 가져오려면 -> getter 사용 - 데이터로 응답하려면 RestController 사용 - Rest : 서버의 응답이 JSON 형식임을 나타냄 - Controller : 클라이언트의 요청을 전달 받는 예 - RestController : JSON만을 돌려주는 것 - Controller 클래스를 만들고 위의 역할을 하는 것을 Spring에게 알려주기 위해 @RestController라고 어노테이션(주석)해준다. - @GetMapping('주소') : 해당 주소일 경우 GET 메소드가 실행된다고 보면 된다. - Gradle : 다른 사람들이 만든 도구들..

테스트 코드

최근 추세는 대부분의 서비스 회사가 테스트 코드에 관해 요구한다. 흔히 채용 정보 우대사항을 보면 빌드/테스트/배포 자동화 경험이 있는 사람을 뽑는다. 먼저 TDD와 단위 테스트는 다른 내용인데 TDD는 테스트가 주도하는 개발이고 테스트 코드를 먼저 작성하는 것부터 시작한다. 반면, 단위 테스트는 TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 말한다. TDD와 달리 테스트 코드를 꼭 먼저 작성해야 하는 것도 아니고, 리팩토링도 포함되지 않는 순수하게 테스트 코드만 작성하는 것을 말한다. 테스트코드는 왜 작성해야 하는가? - 단위 테스트는 개발단계 초기에 문제를 발견하게 도와준다. - 단위 테스트는 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지..