특정한 정보(id, name 등)을 가지고 있는 클래스를 표현하는 하나의 규칙데이터를 표현하기 위한 목적을 지니고 있다.위 규칙들을 지닌 클래스를 Java Bean 이라고 한다.반드시 클래스는 패키지화 되어야한다.멤버 변수는 property 라고 한다.멤버 변수는 pr
final 키워드를 사용한 인스턴스들만 Bean 객체로 등록한다는 것NullPointerException 발생한다.우린 의존성 주입(DI) 을 사용해서 Bean 객체로 등록된 아이들에게 제어의 역전(Inversion of Control) 을 수행한다.의존성 주입에는 3
Menu 기능 코드 분석 중 MenuMapperService 의 역할이 궁금해서 차장님께 여쭤보는 도중 Map Struct 라고 용어를 말씀하시는데 몰라서 찾아보게 되었다..menuMapperService 는 크게 객체를 변환하는 역할을 하는 친구인데, Entity -
값의 집합으로 이루어진 간단한 객체를 간단하게 개발하기위해 고안된 Classimmutable data (불변 데이터) 를 다룰 class 구현에 최적화되어있다.웹 서비스 구현에서 많이 사용되는 DTO 개념에 적용하면 유용하다.생성자, getter(), equals(),
차장님이 작성하신 코드를 바탕으로 코드 분석을 하는 중인데, 메뉴 수정 기능 코드 중 orElseThrow 를 발견했다.내가 사용한 코드는 orElse() 를 사용하여 null 을 걸러내는 방식으로 사용해봤는데, orElseThrow 는 처음 접해보는 코드라 알아보았다
사내 자바 프로젝트 코드를 분석하는 도중, 책에서 배운 코드는 Service 파일에서 return 시 바로 데이터를 반환했지만 프로젝트 내에서는 Entity를 DTO로 변환해서 return 하는 것이다.이 코드에서 map 함수를 이용하여 toWarehouseDto 함수
Entity 가 데이터베이스에서 로드될 때, 연관된 Entity 들도 함께 로드되는 방식이다.즉, Entity 를 조회할 때 자신과 연관된 Entity 를 조인(Join) 을 통해 함께 조회하는 방식이 방식을 사용하면 1번의 쿼리로 필요한 모든 데이터를 가져올 수 있다
이번주 백엔드 업무 중 Entity 생성을 하던 도중 오류가 발생하여 고민하다 차장님께 여쭤봤다.그런데...자료형을 선언하는 과정에서 Boolean 의 B 를 대문자로 선언해야 했는데 b 인 소문자로 작성하여 오류가 난 것이였다.사실 fastapi 를 계속 개발하던 나
자바에서는 새로운 객체를 만들 때, new 라는 메소드를 사용한다.new 를 5번 사용하면, 새로운 객체가 5개 생성된다.객체 1개를 뜻한다.객체 1개를 만드는 패턴이다.즉, 메모리 절약을 위해 인스턴스가 필요할 때 똑같은 인스턴스를 새로 만들지 않고 기존의 인스턴스를
차장님께서 만드신 프로젝트 내 코드를 기반으로 분석하며 프로젝트를 진행 중인데, 엔티티를 만들 때 다양한 어노테이션이 선언돼있었다.그 중 하나...@SuperBuilder 라는 녀석에 꽂히게 됐는데...Lombok 라이브러리에서 제공하는 어노테이션 중 하나이다.이 어노
JWT 구현 후 token 발급을 위해 테스트 중 오류가 나왔다....Unable to determine a suitable MAC or Signature algorithm for the specified key using available heuristics: eit
스프링 시큐리티 스프링 기반의 어플리케이션에서 인증 및 권한 부여 등의 보안 기능을 쉽게 구현하도록 돕는 프레임워크이다. 인증과 인가 인증(Authentication) 사용자가 누구인지 확인하는 과정 ex) 로그인 과정에서 아이디와 비밀번호로 사용자를 확인하는 것
데이터베이스 형상관리 툴이며, DB Git 버전이라고 생각하면 이해하기 편하다.스키마, 컬럼 등 수정해야하는 상황이 나오면 Flyway 를 통해서 관리한다.스키마 또는 컬럼 등 수정하는 것을 잊어버리지 않고 미리 예방할 수 있다. 스프링을 실행하는 순간 DDL 문을
Customer 코드를 작성 후 테스트 단계에서 삭제 기능을 테스트하는데... 오류가 났다..문제는 enum 클래스를 적용한 status 에서 오류가 난다고 메시지가 적혀있었다org.springframework.dao.InvalidDataAccessApiUsageExc
스프링으로 처음 프로젝트를 하다가 잠깐 시간이 남아 AWS EC2 업로드를 할 수 있는 시간이 있어 연습 하기로 했다.새로운 계정으로 로그인 한 후, 처음 들어온 페이지의 오른쪽 상단으로 보면 오하이오로 적용되어있다.서울로 설정을 해주지 않으면, 성능뿐만 아니라 서울로
이전 작업에서 인스턴스를 성공적으로 생성하는 것까지 수행했다.인스턴스 상태가 실행 중이면 인스턴스 생성 시 보안그룹 설정을 수정해보자.우리가 만든 인스턴스가 보이는 화면 왼쪽 바에 네트워크 및 보안 칸이 있다 그 하단에 보안 그룹 칸으로 이동한다.이동 후, 보안 그룹
원격으로 EC2에 접속해야하는데 아까 다운받은 SSH 키가 필요하다.인스턴스로 접속한 후 마우스 우클릭을 이용해 연결 버튼을 눌러준다.버튼을 누르면 화면이 나오는데 SSH 클라이언트로 읻오해서 예: 밑에 적힌 네모 2개 겹친 버튼을 눌러 복사한다.그리고 아까 다운받은
지금까지 했던 것들을 토대로 다시 작업해보면 우리는 우분투까지 접속해있는 상황이다. 자바 설치 이제 접속한 우분투에 자바를 설치해줘야하는데, 명령어는 이렇다 > sudo apt-get install openjdk-21-jre openjdk 이후 숫자는 자바의 버
프로젝트를 진행하면서 테스트를 하다 DB 내 데이터를 그냥 삭제하는 경우도 있다.그 때 상위 테이블과 연관된 하위 테이블 내 데이터를 삭제해서 상위 테이블 조회 시, 하위 테이블 데이터가 없다고 오류가 나는 경험을 했다.(삭제할 때 사용 중인 부분이 있으면 삭제를 막아
프로젝트를 진행하면서 save() 메서드와 saveAll() 메서드를 사용했고, saveAll() 메서드가 더 빠르다는 사실도 알고있다.하지만 정확한 원인을 모르고 있었는데, 왜 빠를까? 라는 의문이 자꾸 생기면서 찾아보게 되었다.Spring JPA 를 활용한 데이터
스프링을 시작한 후 개인 프로젝트로 풋살장 예약 API를 만들어보고 싶다는 생각으로 플젝을 진행 중이였는데... 풋살장 예약 기능을 어떻게 만들지 고민했다.일정 간격(3일 ~ 7일) 동안 예약을 열어둔다.특정일에 맞춰 2시간 간격으로 풋살장을 예약할 수 있다.Ex. '
풋살장 예약 API 내 구장 예약에 관해 로직을 작성하는 도중 순환 참조 에러가 발생했다... 문제 발생 에러메시지 프로젝트 구조 내가 작성한 프로젝트는 도메인 별 관련 DB는 해당 서비스안에서 해결한 후에 불러오는 방법을 사용했다. (reserveRepositor
Update -> Insert 하는 방식으로 바꾸기 위해...예약 테이블을 조회했을 때, 슬롯을 조회하는 방식을 없앤 후 예약 및 예약 시간대를 조회하는 API부터 수정했다.검색 일자 + 구장 id를 조건으로 입력받는다.1-1. 검색일은 오늘보다 이전 날짜를 검색할 수