전체 글

코딩하는 대학생에서 개발자까지
[JAVA] StringCharacterIterator이란?
StringCharacterIterator? 문자열을 반복하는 친구인가?! 1. Iterator과 StringCharacterIterator의 차이 Iterator이란? An iterator over a collection. Iterator takes the place of Enumeration in the Java Collections Framework. 컬렉션에 대한 반복자입니다. Iterator는 Java Collections Framework에서 Enumeration을 대신합니다. 공식문서에서도 볼 수 있듯이 Iterator은 Collection에 대한 반복자입니다. Collection은 데이터를 모아서 저장하는 자료구조를 일반화한 개념입니다. 자바에서는 Collection Framework를 제..
[왜?] 파일 전송에 presigned url이라는 방법을 사용했어?
·왜?
1. Presigned URL이란? 미리 서명된 URL의 생성자가 해당 객체에 대한 액세스 권한을 보유할 경우, 미리 서명된 URL은 URL에서 식별된 객체에 대한 액세스를 부여합니다. 즉, 객체를 업로드하기 위해 미리 서명된 URL을 수신하는 경우, 미리 서명된 URL의 생성자가 해당 객체를 업로드하는 데 필요한 권한을 보유하는 경우에만 객체를 업로드할 수 있습니다. * 미리 서명된 URL은 Presigned URL입니다. AWS 공식문서에서는 Presigned URL을 이렇게 정의하였습니다. 조금 더 쉽게 말하자면 해당 객체를 업로드하는데 필요한 권한을 보유하고 있는 사람이 객체를 업로드하고 싶은 사람에게 서명된 URL을 주는 것입니다. 이를 백엔드와 프론트엔드 개념에 적용시켜 보면 프론트엔드가 백엔..
[왜?] 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/회고
보호되어 있는 글입니다.
코딩하는_대학생
코딩하는 대학생에서 개발자까지