본문 바로가기

항해 99

(151)
Controller, RestController 차이 Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있음 차이점 @Controller의 역할은 Model 객체를 만들어 데이터를 담고 View를 찾는 것이지만, @RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답에 담아서 전송함 @Controller와 @ResponseBody를 사용하여 만들 수 있지만 이러한 방식은 RESTful 웹서비스의 기본 동작이기 때문에 Spring은 @Controller와 @ResponseBody의 동작을 조합한 @RestController을 도입 Spring의 Controller 동작방식 1. @Controller 이해하기 Controller로 view 반환..
메서드 명 find와 get의 차이 네이밍 컨벤션 find vs get (JPA에서의 내부 동작 차이) Repository 내 구현되는 메서드 명으로 find와 get을 선택함에는 다소 신중함이 필요함 메서드 명으로 find를 쓰느냐, get을 스느냐에 따라서 메서드 내부 구현이 어떻게 되어 있을지도 함께 전달할 수 있음 get vs find 기준 1. 값을 가져오는 시간 기준 get : 데이터를 가져오는 시간이 짧을 때 사용 find : 검색 프로세스나 연산 알고리즘을 사용하며, 데이터를 가져오는데 걸리는 시간이 좀 더 길다. 2. 데이터 가져오는 데 오류 여부 get : 데이터 가져오는데 오류가 발생하지 않는다. 비교적 간단한 로직 find : 데이터를 가져오는데 오류가 발생한다. 비교적 복잡한 로직 get을 사용하는 경우 데이터를 가..
WIL-4 Fact : 이번주 있었던 일, 내가 한 일 월 : Spring 입문 과정 테스트, 1레벨 과제 페어 리뷰, 2레벨 과제 페어 프로그래밍 시작 화 : 도서관 서버 유저 등록 및 조회 관련 API 개발 수 : 개발 API 테스트 및 프로젝트 Branch 통합 및 2레벨 프로젝트 마무리 목 : 2레벨 과제 페어 리뷰, 3레벨 과제 UseCaseDiagram 작성, API 명세서 작성 금 : 3레벨 프로젝트 생성, 관리자 등록 및 권한 인증/인가 API 구현(테스트 진행) 토 : Spring Security 적용 및 테스트 진행, 프로젝트 Branch 통합 및 프로젝트 마무리 Feeling : 나의 감정적인 반응, 느낌 프로젝트 마다 다른 페어와 진행하다 보니 약간 어색한 느낌이 들었음 API 구현 시 예기치..
TDD(Test-Driven Development), JUnit TDD(Test-Driven Development) 테스트 주도 개발 반복 테스트를 이용한 소프트웨어 방법론, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며, 애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First' 개념에 기반을 둔 단순한 설계를 중요시 함 eXtream Programming(XP) 미래에 대한 예측을 최대한 하지 않고, 지속적으로 프로토타입을 오나선하는 애자일 방법론 중 하나이다. 이 방법론은 추가 요구사항이 생기더라도, 실시간으로 반영할 수 있다. TDD(Test-Driven Development), 테스트 주도 개발에 대한 프로그래머들의 의견은 늘 엇갈..
Swagger 사용하기 Swagger 개요 API를 설계, 빌드, 문서화하고 테스트하는 데 사용되는 오픈 소스 프레임워크, 주로 RESTful API를 문서화하고 클라이언트 개발을 용이하게 하는 데 활용됨 Swagger는 API 명세를 정의하기 위한 OpneAPI Specification(OAS)를 사용함. 이 명세는 API 엔드포인트, 매개변수, 응답 형식 등과 같은 API의 구조와 동작을 정의함, Swagger를 사용하면 개발자는 API의 동자 방식을 이해하고 API를 통합하는 데 필요한 정보를 쉽게 찾을 수 잇음 주요 기능 API 문서화 : Swagger를 사용하여 API의 명세를 문서화할 수 있음, 이를 통해 API 사용자들은 API의 기능, 엔드포인트, 매개변수 등에 대한 정보를 쉽게 얻을 수 있음 API 테스트 : ..
객체지향 생활체조 9가지 원칙 객체지향 생활 체조 원칙 소트웍스 앤솔러지(ThoughWorks Anthology) 책에서 나오는 원칙으로 9가지 원칙을 준수하면서 객체지향을 추구할 수 있다고 한다. 1. 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다. 2. else 예약어를 쓰지 않는다. 3. 모든 원시 값과 문자열을 포장한다. 4. 한 줄에 점을 하나만 찍는다 5. 줄여 쓰지 않는다(축약 금지). 6. 모든 엔티티(Entity)를 작게 유지한다. 7. 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다. 8. 일급 컬렉션을 쓴다. 9. Getter / Setter / 프로퍼티를 쓰지 않는다. 1. 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다. 코드에 너무 많은 들여쓰기가 있다면, 가독성과 유지 관리 측..
Postman API 테스트, Intellij Git Conflict 해결 Postman API Test 준비 사항 Postman Workspaces API 설계(API 명세서 작성) Spring web server-client 파일(intellij 사용) 순서 Workspaces에 Collections 생성 - 이름 설정(프로젝트 이름) 구현 기능 별 API 설계(Add request) HTTP 메서드 타입 결정, Rquest 이름 - 구현 기능, API 주소 입력 API 주소(또는 엔드 포인트) 입력 Input data 있을 경우 변수 명과 입력 값 설정 request save API 기능 구현 후 테스트 실시 API주소 및 데이터 변경 사항 있을 시 Postman에 반영 input 있을 경우 입력 후 send(Ctrl+enter) Response, Server log 확인..
Spring - JPA Entity 연관 관계 JPA Entity 연관 관계 연관 관계 정의 규칙 방향: 단방향, 양방향(객체 참조) 연관 관계의 주인: 양방향일 때, 연관 관계에서 관리 주체 다중성: 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 단방향, 양방향 데이터베이스는 외래 키 하나로 양 쪽 테이블 조인 가능(따라서 DB는 방향을 나눌 필요가 없음). 객체는 참조용 필드가 있는 객체만 다른 객체를 참조하는 것이 가능함. 두 객체 사이에 하나의 객체만 참조용 필드를 가지고 참조하면 단방향 관계, 두 객체 모두 각각 참조용 필드를 가지고 참조하면 양방향 관계. 엄밀히 따지면 양방향 관계는 없고 두 객체가 단방향 참조를 각각 가져 양방ㅇ향 관계처럼 사용하고 말하는 것 JPA를 사용해 DB와 패러다임을 맞추기 위해 객체는 연..