Loading the catalog…
Loading the catalog…
2. Spring Data JPA 기본 💚 다양한 요청 처리 방식 @Controller vs @RestController SSR 방식이 아닌 이상 Spring MVC 패턴에서 Model 과 View 의 역할을 FE가 처리함에 따라 BE는 데이터만 내려주게 된다. - JSON 형식 @Controller : 전통적인 Spring MVC의 컨트롤러, View 를 반환하기 위해 사용 @RestController : @Controller + @ResponseBody @ResponeBody : Controller 메서드가 반환한 Java 객체를 HTTP 응답 Body* 에 담아서 보내는 어노테이션 Java 객체 → JSON ✨[참고] @RequesetBody @RequestBody : HTTP 요청 Body에 담겨온 데이터를 Java 객체로 변환* 해서 받는 어노테이션 JSON → Java객체 ✨[참고] HttpMessageConverter와 Jackson라이브러리 Spring에서 JSON ↔ Java 실제 변환 작업은 내부의 HttpMessageConverter가 하고, JSON 변환에는 기본적으로 Jackson 라이브러리가 사용된다 @RequestMapping @RequestMapping 은 특정 URL 요청을 Controller의 클래스/메서드에 연결해준다. 사용법1 @ResController @RequestMapping("/users) public class UserController{ @GetMapping @PostMapping @PutMapping @PatchMapping @DeleteMapping } 사용법2 @RestController public class UserController{ @RequestMapping(value = "/users", method = RequestMethod.GET) public void getUser(){ ... } } 💚 데이터 전달 방식과 어노테이션 클라이언트 → 서버 데이터 전달 방식 데이터 전달 방식 어노테이션 주요 속성 / 특징 예시 쿼리 파라미터(쿼리 스트링) @RequestParam required : 필수 여부 지정 defaultValue : 값이 없을 때 기본값 지정 /users?name=kim 경로 변수 @PathVariable URL 경로의 값을 변수로 받음 /users/1 요청 본문 @RequestBody 요청 Body의 JSON 등을 Java 객체로 변환 JSON Body 폼 데이터 @ModelAttribute 폼 데이터를 Java 객체에 바인딩 HTML Form 데이터 @RequestParam 은 디폴트가 required=true 이므로 false 설정을 해주지 않으면 필수값 ✨[참고] 쿼리 파라미터 vs 경로 변수 쿼리 파라미터( @RequestParam ) : URL 경로 ? 뒤에 오는 조건값(선택적) 검색, 필터링, 정렬, 페이징 용도 예시 : /users?id=1 경로 변수( @PathVariable ) : URL 경로 자체에 값이 포함되는 필수값 특정 리소스를 식별하기 위해 사용 예시 : users/1 💚 DTO를 record로 작성기 record 는 데이터 전달 목적의 객체를 간결 하게 만들기 위한 문법으로 DTO의 성질과 부합한다. 또한 record 는 내부 필드가 private final 이기 때문에 불변을 보장 한다. public record UserRequest( String name, int age ) { } 위와 같이 record 를 작성하면 자바가 자동으로 아래 기능을 만들어준다. 생성자 getter 역할 메서드 equals() hashCode() toString() ✨[참고] class vs record 구분 class record 코드 길이 비교적 길음 매우 간결함 생성자 직접 작성 또는 Lombok 사용 자동 생성 Getter 직접 작성 또는 Lombok 사용 자동 생성 Setter 작성 가능 일반적으로 불가능 값 변경 가능 생성 후 변경 불가 equals/hashCode 직접 작성 또는 Lombok 사용 자동 생성 상속 가능 다른 클래스를 상속할 수 없음 주요 용도 일반적인 객체 데이터 전달용 객체 💚 Docker 도커는 소프트웨어 개발과 배포를 도와주는 컨테이너 기술 로 애플리케이션을 빌드, 배포, 실행하는 과정을 쉽게 관리 하게 해준다. Container 애플리케이션과 그 실행 환경을 함께 패키징 하여 어디서든 동일하게 실행될 수 있도록 하는 기술 Docker Image = 게임 CD 코드, 라이브러리, 설정 등을 포함하고 있는 읽기 전용(Read-only) 템플릿 - 변경 불가 실행에 필요한 모든 것을 담고 있는 정적 파일(설계도) !!️하나의 이미지로 여러 개의 컨테이너를 만들 수 있다. Docker Container = 실행되고 있는 게임 도커 이미지를 실행(Run)한 상태 로 독립된 격리 프로세스 이미지를 실제로 실행한 인스턴스 Docker File 도커 이미지를 생성하기 위한 설정 및 명령어 템플릿 파일 Dockerfile 작성 ↓ $ docker build ↓ Docker Image 생성 ↓ $ docker run ↓ Docker Container 생성 및 실행 데이터베이스 데이터 무결성(Data Integrity) 엔티티 무결성 각 행을 유일하게 식별할 수 있어야 한다. PK 는 중복❌, NULL❌ 참조 무결성 테이블 간 관계가 올바르게 유지되어야 한다. FK 는 실제로 존재하는 PK 값을 참조해야 한다. 도메인 무결성 컬럼에 들어가는 값은 정해진 데이터 타입, 범위, 조건 을 만족해야 한다. DROP vs DELTE vs TRUNCATE 3아키텍처 레이어 모든 데이터 클래스는 getter가 필수 스프링 내부적으로 객체를 조작할 때 getter를 사용 영속성 컨텍스트는 트랜잭션 내에서 동작 @Transactional 이 붙이면 그 내부 코드는 트랜잭션으로 관리 및 영속성 컨텍스트가 동작
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
[내일배움캠프] TIL(2) - Spring 입문🌱. 2. Spring Data JPA 기본 💚 다양한 요청 처리 방식 @Controller vs @RestController SSR 방식이 아닌 이상 Spring MVC 패턴에서 Model 과 View 의 역할을 FE가 처리함에 따라 BE는 데이터만 내려주게 된다. - JSON 형식 @Controller : 전통적인 Spring MVC의 컨트롤러, View 를 반환하기 위해 사용 @RestController : @Controller + @ResponseBody @ResponeBody : Controller 메서드가 반환한 Java 객체를 HTTP 응답 Body* 에 담아서 보내는 어노테이션 Java 객체 → JSON ✨[참고] @RequesetBody…
Open source