분류 전체보기

코딩하는 대학생에서 개발자까지
[왜?] dto에 @getter 어노테이션이 없으면 안 돼?[트러블슈팅]
·왜?
1. 에러 발생 마이페이지를 위해 Member를 조회한 뒤, dto를 통해 반환하는 API입니다. 406 HttpMediaTypeNotAcceptableException 에러가 발생했습니다. Controller @GetMapping(value = "/user") public ResponseEntity getUserInfo(@AuthenticationPrincipal MemberPrincipal memberPrincipal) { Long id = memberPrincipal.getMember().getId(); MemberInfoResponse memberInfoResponse = memberService.getMemberInfo(id); return ResponseEntity.ok(memberInfoRe..
디자인 패턴 #3 데코레이터 패턴(Decorator Pattern)
이 글을 읽고 계시는 여러분을 유명한 햄버거 체인의 백엔드 직원으로 상상해 봅시다. 문제 상황 맥도날드, 롯데리아, 버거킹만 해도 햄버거의 다양성이 상상을 초월합니다. 그리고 햄버거에는 패티 추가, 양상추 추가, 양파 빼기 등 수많은 옵션들이 있습니다. 어느 날 여러분에게 온라인 햄버거 주문 시스템을 개발하라는 지시가 내려졌습니다. 이런 상황에서 여러분은 어떻게 이러한 다양한 햄버거를 구현할 것인가요? 아마 데코레이터 패턴을 알지 못하시는 분들은 "공통 인터페이스를 만든 뒤, 구현하면 되죠!!"라고 말씀을 하실 것이라고 생각됩니다. 밑의 그림은 책에 나온 예시입니다. 비록 햄버거는 아니었지만 커피를 예시로 다이어그램을 그린 그림입니다. 정말 수많은 클래스들이 하나의 인터페이스를 구현하는 모습을 볼 수 있..
LazyInitializationException이란? [트러블슈팅]
·Backend/Spring
LazyInitializationException이란 객체를 로딩할 때 지연로딩이 적용된 엔티티 또는 컬렉션을 초기화하지 못했을 때 발생하는 런타임 예외입니다. 지연 로딩? 지연로딩이란 자신과 연관된 엔티티를 실제로 사용할 때 연관된 엔티티를 조회하는 것을 말합니다. Team과 Member로 예시를 들면 1:N 관계에서 매번 Team을 불러올 때마다 Member를 가져올 필요가 없다면 이때 지연 로딩을 사용합니다. 배달의 민족 상점을 예시로 들어보겠습니다. 배달의 민족에서 음식을 시키기 위해 카테고리별 상점들을 보고 있을 때 저희는 상점의 정보만 필요합니다. 리뷰를 보고 싶으면 상점을 클릭해서 그 상점의 리뷰를 보죠. 상점과 리뷰는 1:N관계인데 상점을 호출할 때 상점에 달린 리뷰를 가져올 필요가 없는 ..
4주차 미션 회고 feat. 우테코
·Backend/회고
보호되어 있는 글입니다.
3주차 미션 회고 feat. 우테코
·Backend/회고
3주 차 미션은 설계 실수도 있었고, 코드에 욕심이 생겨 스스로 많은 생각이 들었던 한 주였다. 2주 차의 problem 1. 값을 하드코딩 하지 않는다. (공통 피드백) 2주차 미션을 풀 때는 '1', ', '등의 문자를 상수로 정의하지 않고 하드코딩 하였습니다. 3주 차 미션에서는 이러한 문제점을 해결하기 위해 각 클래스에 상수로 정의하였습니다. private static final String ONE_STEP = "-"; private static final String RESULT_MESSAGE = "최종 우승자"; private static final String COLON = " : "; public static final String CAR_NAME_MESSAGE = "경주할 자동차 이름을 ..
[JAVA] Steam API & Iterator 공통점 및 차이점 feat. 반복자
비슷한 듯 안 비슷한 두 친구... Steam API 란? 컬렉션, 배열 등의 저장 요소를 하나씩 참조하며 함수형 인터페이스를 적용하여 반복적으로 처리할 수 있도록 해주는 기능입니다. 컬렉션이란? 자바의 컬렉션은 데이터를 저장하고 관리하는 클래스의 집합을 의미합니다. List : 순서가 있는 데이터의 집합을 다루며 데이터의 중복을 허용합니다. Set : 순서를 유지하지 않는 데이터의 집합을 다루며, 중복을 허용하지 않습니다. Map : (Key, Value)의 쌍으로 이루어진 데이터의 집합입니다. Key는 중복을 허용하지 않습니다. Queue : 데이터가 입력된 순서대로 접근이 가능하며, 주로 데이터의 순서를 관리할 때 사용합니다. 람다식이란? (int a, int b) -> a + b // (파라미터)..
코딩하는_대학생
'분류 전체보기' 카테고리의 글 목록 (4 Page)