본문 바로가기

프로그래밍/Project7

[Spring] ToyProject 2단계(3) - 정리 일주일이 순식간에 지나가고 프로젝트 제출하고 정리의 시간이 되었습니다!😁 모두가 각자의 역할에 책임을 다 해준 아름다운 결과물이 나왔습니다! 프로젝트를 진행하면서 기억하고 넘어가면 좋은 내용들을 정리합니다. LocalDateTime 직렬화/역직렬화를 위한 준비 jackson 라이브러리에서 objectmapper가 남모르게😅 직렬화와 역직렬화를 해줍니다. implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2' @Data @NoArgsConstructor @AllArgsConstructor @Builder class Trip { private String name; private String startingPoint; private Strin.. 2024. 2. 4.
[Spring] ToyProject 2단계(2) - 역할 분배, 기본 구조 월요일이 되어 팀에 호출(?)되어 역할 분배와 프로젝트 기본 구조를 만들었다. 영광스럽게도 혼자 끄적인 설계를 따라 진행하게 되었다. 사용자, 여행, 여정 크게 3개의 도메인으로 나눠놨을 때 여정 부분을 맡게 되었다. 물론 혼자 다 해보는 프로젝트도 진행 중이고 그 내용으로 포스팅을 진행한다. 여행의 종류(이동, 숙소, 체류)에 대해서는 enum 클래스를 사용하려고 했으나 1차적으로 String으로 처리한 후 시간여유가 있다면 enum클래스로 변경 예정이다. 예습하면서 미리 찾아보는게 좋겠다. [여행 데이터베이스] trip 컬럼명 데이터 타입 조건 설명 자바 변수명 자바 타입 id BIGINT(32) PK, AI 여행 아이디 id Long user_id BIGINT(32) FK, NOT NULL 사용자 .. 2024. 1. 29.
[Spring] ToyProject 2단계(1) - 시작하기 패스트캠퍼스 : 백엔드 개발 부트캠프 ToyProject 2 1단계, 2단계, 3단계로 진행 최종 구현 목표는 '여행과 여정을 기록하고 관리하는 SNS 서비스 2단계 달성목표 : Spring Legacy 기반 프로젝트, DB 설계, DB 트랜잭션, RESTful API 설계 [프로젝트 정의] 회원은 여러 여행 기록을 저장할 수 있습니다. 여행은 여러 여정을 가질 수 있습니다. 여정 정보는 이동정보, 체류정보, 숙박정보 등의 종류를 포함할 수 있습니다. 회원이 가진 전체 여행 리스트를 조회할 수 있습니다. 전체 여행 리스트는 여행 정보와 각 여행에 포함된 여정 이름들을 같이 보여줍니다. 각 여행의 상세 여정 정보는 개별 여행 조회를 통해 수행합니다. 회원은 개별 여행 정보를 조회할 수 있습니다. 특정 여행.. 2024. 1. 28.
[Project01] MiniBoard(3) - Custom Annotation 생성, 사용자 Model 생성 Custom Annotation 생성 각 클래스의 역할 세분화를 위해 Business, Converter Annotation을 만든다. 요청 로직의 흐름은 Client -> Controller -> Business -> Service -> Repository 순으로 흘러가고, 응답은 역순으로 반환한다. 요청과 응답의 모델이 다르기 때문에 도메인별로 Converter 클래스를 사용할 예정이다. @Business @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Service public @interface Business { @AliasFor(annotation = Service.class) String value() default ""; } .. 2024. 1. 25.
[Project01] MiniBoard(2) - ObjectMapper, SwaggerUI, Filter 설정 ObjectMapper 설정 Object(객체) -> Json(문자열) 형태로 만들어 내는 직렬화와 Json(문자열) -> Object(객체)로 만들어내는 역직렬화 처리를 할 때 사용 프로젝트 Api에서 변수는 카멜케이스를 사용하고 있는데 클라이언트로의 응답을 내려줄 때 Json에서의 Key는 스네이크케이스를 사용한다. 그렇기 때문에 클라이언트로 응답을 주는 모델(DTO)에 @JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class) 어노테이션을 달아주고 사용을 하게 되는데 매번 해당 어노테이션을 달아주는 번거로움을 덜어주기 위함 + 추가 설정이 가능하다. @Configuration public class ObjectMapperConfig .. 2024. 1. 25.
[Project01] MiniBoard(1) - 프로젝트 생성, 데이터베이스 연결 시작하며 기본적인 자바 문법과 스프링부트를 이용한 실습이 어느 정도 진행이 된 상황이라 여러 가지 기능을 가진 게시판 프로젝트를 진행한다. 중간에 실력이 부족하다고 느끼면 학습하는 시간이 필요하겠지만 프로젝트에 필요한 내용들일테니 모두 기록에 담고 진행 예정이다. 첫 번째 기능구현은 사용자 가입과 로그인에 대한 내용이다. jdk 버전을 변경하느라 환경변수 설정부터 적지 않은 시간을 썼지만 너무 많은 정보들이 다른 블로그에 있으니 jdk 환경변수 설정은 생략한다. 프로젝트 생성 IDE : IntelliJ Ultimate Language : Java BuildSystem : Gradle-Groovy JDK version : Oracle 21 SpringBoot version : 3.2.1 DataBase :.. 2024. 1. 23.
[Java] ToyProject 1단계 패스트캠퍼스 : 백엔드 개발 부트캠프 ToyProject 1 1단계, 2단계, 3단계로 진행 최종 구현 목표는 '여행과 여정을 기록/관리하는 SNS 서비스' 1단계 달성목표 : Java 문법, 파일 입출력, 예외처리, 클래스 설계 [프로젝트 정의] 회원은 여러 여행 기록을 저장할 수 있습니다. 회원 가입은 다음 단계에서 고려하고 본 프로젝트는 여행과 여정을 기록하고 조회하는 기능을 구현하기로 한다. 여행에는 여러 여정이 있을 수 있습니다. 여정정보는 이동정보(출발지, 목적지, 출발시간, 도착시간), 숙박정보(체크인, 체크아웃) 등의 종류를 포함할 수 있다. 회원의 여행기록 목록이 출력되며, 각 여행기록 목록을 선택하면 상세한 여정기록이 출력됩니다. 회원 및 여행기록은 향후 데이터베이스 테이블로 관리되지만.. 2023. 12. 29.