소개
지식공유자 소개 ✒️
안녕하세요 ! 지식공유자 쥬쥬입니다. 저는 현재 유니콘 기업에서 백엔드 개발자로 근무하고 있습니다. 스프링 프레임워크 기반 백엔드 애플리케이션을 개발하는 것이 주 업무이며, 다양한 경험을 좋아해 인프라 작업과 데이터 작업도 많이해요! 전공자이지만, C언어부터 대부분 독학으로만 공부해오며 너무 많은 삽질을 해왔기 때문에 수강생 분들은 헤매지 않고 지름길로만 학습하셨으면 하는 바람으로 지식 공유를 시작했습니다!
이력 사항/포트폴리오/개인 영상
(현)유니콘 기업 백엔드 개발자
강의
전체2수강평
게시글
질문&답변
2024.04.20
2-3 진행 중 에러 발생
안녕하세요 ! 지식공유자 쥬쥬입니다. 혹시 Exception Log를 첨부해주실 수 있으실까요? 감사합니다.
- 0
- 2
- 113
질문&답변
2024.04.20
RestaurantApi 컨트롤러 개발 질문
안녕하세요. 지식공유자 쥬쥬입니다. 현업에서는 일반적으로 Scalar 값으로 넘기거나 객체 컨버팅을 한번 더 하여 메소드를 호출합니다. 예를 들어서, Request 객체가 있다고 가정했을 때 아래처럼 한번 컨버팅 하거나, 인자값을 풀어 사용하는 형태입니다 ! FooBarReqeust -> method(FooBarCommand/Query) FooBarRequest -> method(propert1, proeprty2) 일반적으로 Request객체에서 아래처럼 바꾸어줍니다. class FooBarRequest { String proeprty1; String property2; public FooBarCommand toCommand() { return new FooBarCommand(property1, property2); // builder가 있다면 builder 사용 } } 감사합니다 !
- 0
- 2
- 68
질문&답변
2024.04.20
변경데이터 저장 방법 질문 있습니다!
안녕하세요. 지식공유자 쥬쥬입니다. 이전에 비슷한 질문이 있었어서, 첨부합니다 ! 감사합니다. 안녕하세요 지식공유자 쥬쥬입니다! 말씀하신대로 JPA에서는 영속성컨텍스트에 있는 Entity의 더티체킹을 통해 update 쿼리를 날려주므로 save() 메소드를 호출하지 않아도 데이터베이스에 반영됩니다! 좋은 말씀이신 것 같습니다! 하지만 이것은 JPA Native한 기능(spring-data-jpa가 가지고 있는 특징이란 뜻입니다!)으로, @Repository 의 save() 메소드를 명시적으로 호출해주는 것이 특정 상황에서는 좋을 수 있습니다. 예를 들어, 다음과 같은 요구사항이 생겼다고 가정해볼게요! JPA로 선언한 Entity를 다른 spring-data 라이브러리로 교체할 경우 (mongo db나 r2dbc와 같은) 이 때 JPA를 사용할 때에는 동작했던 코드들이 단순히 spring data 구현체를 교체함으로써 동작이 안하는 상황이 발생할 수 있습니다! 사실 위같은 상황은 많이 발생하지는 않습니다. 저 같은 경우에는 메모리에 있는 객체의 상태가 변경되었다면 저장소(Repository)에 다시 저장(save)해주는 코드가 명시적으로 있는 것이 조금 더 "자연"스럽다고 느껴지는데요. 이것은 제 느낌일 뿐 개개인이 모두 다르게 느낄 수 있다고 생각합니다. 인프넌님이 위같은 견해들을 함께 생각해보시고, 더 낫다고 판단되는 방향으로 개발하시는 것이 가장 좋다고 생각합니다! Appendix. JPA의 더티체킹 기능은 마틴파울러의 저서 엔터프라이즈 애플리케이션 아키텍처 패턴 (P of EAA)의 작업 단위(Unit of Work) 패턴을 읽어보시면 이해하기가 더욱 좋으실거에요! https://www.inflearn.com/questions/939276/%EB%A7%9B%EC%A7%91-%EC%88%98%EC%A0%95-api-%EC%A7%88%EB%AC%B8%EC%9E%85%EB%8B%88%EB%8B%A4
- 0
- 2
- 67
질문&답변
2024.04.20
@Transactional 질문 있습니다!
안녕하세요. 지식공유자 쥬쥬입니다 ! 개인의 취향에 따라 다르지만 저는 메소드에 @Transactional 어노테이션을 붙이는 것을 선호하는 편입니다. 이유는 메소드를 보았을 때 가시적으로 readOnly Transaction인지 아닌지, 확인할 수 있기 때문입니다. 만약 ReadOnly Transaction의 로직들과 아닌 것이 명확히 인터페이스(클래스)부터 분리되어있다면 클래스에 사용하는 것도 좋은 것 같습니다. 감사합니다 !
- 0
- 2
- 60
질문&답변
2024.03.26
flyway jdbcdriver 오류
안녕하세요 지식공유자 쥬쥬입니다. 별도의 jdbc 드라이버를 다운로드해서 넣어주는 것은 제가 실습하거나 개발했던 환경에서는 사례가 없엇던 것 같습니다. flyway 버전의 변경으로 인해 드라이버의 클래스이름이 변경되었을 가능성이 있을 것 같습니다. 이 부분 확인해주시고 안되시면 답글 부탁드립니다 ! 감사합니다.
- 0
- 2
- 130