분류 전체보기692 [Spring] @RequestBody에 기본생성자만 필요하고 Setter는 필요없는 이유 - 1 그간 밀어오고 밀어왔던 내용에 대해 정리하고 넘어가야겠다 싶어 정리하는 글이다. 항상 무의식적으로 Client에게 데이터를 보내거나, 받을 때 일명 DTO를 사용하여 받아왔다. 난 너무나 자연스럽게? 혹은 무의식적으로 DTO에 @Getter를 선언하면서 사용해 온 것은 아닐까? 나는 이전에 과연 한 번이라도 이게 왜 그런지 이전에 궁금해한 걸까? 나 스스로에게 정말 반성하는 의미로 남기는 글이다. 왜 이게 당연하다 생각하고 호기심 있게 살펴보지 않았을까... 뒤늦은 후회감이 조금은 온다. 또한 @Getter는 왜 추가한 것일까? 값을 꺼내오려고?? 이러한 DTO를 Controller에서 받기 위해 @RequestBody를 사용해 왔다. 왜?? @RequestBody는 어떻게 DTO를 생성하는 것일까?? .. BackEnd/Spring 2022. 6. 11. [SLASH 22] 지속 성장 가능한 코드를 만들어 가는 방법 Toss 의 2022년 컨퍼런스를 보며 재미있게 봤던 내용들을 정리하는 글 입니다. 패키지 구조와 계층에 대하여 요즘 생각이 정말 많았는데, 적절한 시점에 아주 좋은 컨퍼런스 영상을 보게되어 행복했다! https://youtu.be/RVO02Z1dLF8 1. 지속 성장 가능한 코드를 만들어 가는 방법 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 예제를 통해 알아보자! 다음 코드는 햄버거를 만드는 가상의 HamburgerService 입니다! 위 코드를 보면 구현에 관한 부분은 파악할수가 없다. 이는 당연하다! 다만 생성자를 통해 의존하는 class를 확인할 수 있고, 대략적인 행동을 예상할 수 있다. 이처럼 생성자를 통해 Class 의존도와 무슨일을 할지 힌트를 얻을 .. Life/컨퍼런스 2022. 6. 11. [백준][C++] 9328번: 열쇠 <228> 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://www.acmicpc.net/problem/9328 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 이 문제를 가장 쉽게 해결하기 위해서는 지도의 태두리를 이동할수 있는 길('.') 로 만들어야 한다. 다음 그림을 살펴보자. 위 그림과 같이 초록색 부분이 원래의 MAP이고, 회색 영역이 우리가 추가해준 부분이다. 이는 외부.. Algorithm/백준 2022. 6. 10. [Review] 2022/06/04 4차 PR (Aribnb 서비스) 이번 리뷰는 Dion 께서 해주셨다! 리뷰해주셔서 감사합니다 !! https://github.com/codesquad-members-2022/airbnb/pull/203#discussion_r891396646 [Team - 06][BE] 에어비앤비 프로젝트 2주차 2회차 PR by zbqmgldjfh · Pull Request #203 · codesquad-members-2022/air 안녕하세요 Dion! 우선 저희 팀의 리뷰를 담당해 주셔서 감사의 인사를 전합니다!! 질문이 한가지 있습니다! 구현 사항 이번에 구현한 사항은 다음과 같습니다. GitHub, Kakao OAuth Login 구현 JWT Token 기 github.com 1. 질문 1-1) URL의 설계 개발을 진행하던 중 URL설계에 대.. CODE SQUAD/FeedBack 정리 2022. 6. 9. [TIL] 일일 회고 2022/06/08 요즘 한 일 1. Aribnb 클론 코딩 진행중 어느덧 이번 과제의 마지막 3주차가 끝나가고 있다... 시간 너무 빠른것 같다... 이번 과제를 진행하면서 부족하다 느낀점도 많고, 배워가는 점도 많은것 같다. 매번 다양한 문제를 경험하고 있어 만족도는 높다! https://github.com/codesquad-members-2022/airbnb/pull/203 [Team - 06][BE] 에어비앤비 프로젝트 2주차 2회차 PR by zbqmgldjfh · Pull Request #203 · codesquad-members-2022/air 안녕하세요 Dion! 우선 저희 팀의 리뷰를 담당해 주셔서 감사의 인사를 전합니다!! 질문이 한가지 있습니다! 구현 사항 이번에 구현한 사항은 다음과 같습니다. GitH.. CODE SQUAD/회고록 2022. 6. 8. [백준][C++] 1389번: 케빈 베이컨의 6단계 법칙 <227> 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 일단 모든 구성원들 자신의 케빈수를 다 구해야 한다는 점에서 플로이드-와샬 방식을 선택하였다. 크게 어려운 부분은 없는데, 생각 못한 부분이 있어 이를 적어본다. if (MAP[i][k] != 0 && MAP[k][j] != 0) { .. Algorithm/백준 2022. 6. 8. [Java] Annotation Processor 이번시간에는 Lombok이 어떻게 동작하는지 그 핵심원리인 annotation processor에 대하여 학습해보자! 1. Lombok의 원리 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 annotation processor 는 compile 할때 중간에 끼어들어서 특정 annotation 이 붙어있는 소스코드를 참조하여 추가적인 소스코드를 삽입시킬 수 있다! 소스코드의 AST(abstract syntax tree)를 조작하는 것 이다! https://javaparser.org/inspecting-an-ast/ Inspecting an AST Inspecting an AST javaparser.org 원래는 AST 의 정보는 참조만 할 수 있고, 소스 코드를 조작할수는.. BackEnd/Java 2022. 6. 8. [Java] Dynamic Proxy 1. Spring Data JPA는 어떻게 동작할까? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번글의 가장 큰 주제는 Spring Data JPA에서 다음과 같은 코드들이 어떻게 구현체를 만드는지 이다! public interface BookRepository extends JpaRepository {} 어떻게 interface만 정의했는데, 객체의 CRUD 가 작동할까? 도대체 누가 BookRepository 타입의 객체를 누가 만들어주는 것 일까! 이에 대한 핵심이 바로! Proxy 라는 class 이다! Spring AOP를 기반으로 동작하며 RepositoryFactorySupport에서 프록시를 생성한다. 저 빨간 박스 안에서 Proxy를 생성하여 반환하.. BackEnd/Java 2022. 6. 7. [JPA] SpringBoot 2.5 이후부터 data.sql 초기화 시점 이번 프로젝트를 진행하던 도중 data.sql 을 통한 초기화 데이터 삽입이 정상적으로 되지 않는 문제가 있었습니다. 이를 해결하기 위한 설정이 필요했는데, 왜 이런 문제가 발생했는지 알아보시죠! 소제목 입력 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 SpringBoot 2.4 이하의 버전에서는 data.sql이 정상적으로 초기화 된다고 합니다. Spring Boot 버전 2.4 -> 2.5 업데이트 사항중에 일부분 때문에 우리는 따로 추가설정을 해줘야 합니다. 원래 설정은 다음과 같았습니다. spring: jpa: hibernate: ddl-auto: create properties: hibernate: format_sql: true database: mysq.. BackEnd/JPA 2022. 6. 6. [JPA] JSON 직렬화 순환 참조 해결하기 오늘도 프로젝트를 구현하던 도중에 거의 매번 만나왔던 순환 참조 문제를 만나게 되었다. 이번이 처음은 아니지만, 한번쯤 정리해볼만한 내용인것 같아 정리해둔다. 1. JSON에서 순환 참조 문제 ▶ 순환 참조 JPA에서 양방향으로 연결된 엔티티를 JSON 형태로 직렬화하는 과정에서, 서로의 정보를 계속 순환하며 참조하여StackOverflowError 를 발생시키는 현상이다. Spring Boot에서는 @ResponseBody를 구현할 시 Object를 JSON 형태로 변환하기 위해 Jackson 라이브러리를 이용하는데, 이때 Jackson은 entity의 getter를 호출하여 필드에 접근하고, 직렬화를 이용해 Object를 JSON 형태로 객체를 변화시켜 반환한다. 문제는 getter를 호출하는 과정에.. BackEnd/JPA 2022. 6. 5. [Review] 2022/06/01 3차 PR (Aribnb 서비스) 이번 리뷰는 Dion 께서 해주셨다! 리뷰해주셔서 감사합니다 !! https://github.com/codesquad-members-2022/airbnb/pull/140 [Team - 06][BE] 에어비앤비 프로젝트 2주차 1회차 PR by leejohy-0223 · Pull Request #140 · codesquad-members-2022/a 안녕하세요 Dion! 우선 저희 팀의 리뷰를 담당해 주셔서 감사의 인사를 전합니다!! 주요 변경사항으로는 Native Query를 JPQL로 변경한 부분입니다. 수정사항이 많지는 않습니다만, 한 가지 질문이 있 github.com 1. 코드 리뷰 1-1) Spring Actuator 리뷰어 께서 Spring Actuator에 대하여 학습해보길 권해주셨다! 본질.. CODE SQUAD/FeedBack 정리 2022. 6. 4. [TIL] 일일 회고 2022/06/03 요즘 한 일 1. Aribnb 클론 코딩 진행중 팀원 Lucid, 피그백 과 함께 iOS용 Arirbnb 앱을 만드는 과정을 진행중이다. 구현과정에서 크게 재미있었던 부분이 2개 있었다. 1) Oauth 로그인 직접 구현하기 2) 자동 배포하기 Oauth를 방학 기간에 단순 Spring으로 한번, Spring Security를 써서 한번, 총 2번 구현해 봤기에 이론적인 내용은 어느정도 인지하고 있었다... 다만이 이걸 프로젝트에 적용할려 생각하니 또 어렵게 느껴졌다... 루시드와 각각 Github, Kakao 를 맡아 하나 씩 구현하고, 인터페이스로 공통 부분을 뽑아내어 처리하였다. 조금더 공통된 부분을 제거할 수 있을것 같은데.... 적용하지 못하고 있는것 같아 아쉽다. 자동 배포는 성공적으로 완성할.. CODE SQUAD/회고록 2022. 6. 3. 이전 1 ··· 19 20 21 22 23 24 25 ··· 58 다음