Development (155) 썸네일형 리스트형 [개발 일기] 이게 왜 null이 아니야 (영속성 컨텍스트에서 같은 Entity를 참조!) 테스트 코드 공부 중에 의아한 점.Product givenProduct = Product.builder() .name("note") .price(1000) .stock(500) .build(); System.out.println("before save = " + givenProduct.getNumber()); // when Product savedProduct = productRepository.save(givenProduct); // then System.out.println("after save = " + givenProduct.ge.. [Spring] 스프링 부트에서 테스트 코드 작성하기 스프링 부트의 테스트 설정 스프링 부트는 테스트 환경을 쉽게 설정할 수 있도록 spring-boot-starter-test 프로젝트를 지원한다. 이 프로젝트를 사용하려면 의존성을 추가해야 한다. Gradle (build.gradle) dependencies { ... testImplementation 'org.springframework.boot:spring-boot-starter-test' } Maven (pom.xml) org.springframework.boot spring-boot-starter-test test 스프링 부트에서 제공하는 spring-boot-starter-test 라이브러리는 JUnit, Mockito, assertJ등의 다양한 테스트 도구를 제공한다. spring-boot-st.. [Diary] Primary key 타입은 숫자랑 GUID(UUID)중에 어떤 걸 쓸까요? 설문조사 엔티티의 ID 타입은 숫자 Or GUID(UUID)?졸업 프로젝트 진행중에 나왔던 대화 주제입니다.설문조사 게시글의 Id 타입을 무엇으로 할지...사실 그 당시에는 GUID 타입에 대해서도 처음 접해봐서 잘 몰랐는데 지금 다시 떠올라서 GUID에 견해에 대해 써보려합니다.GUID(UUID)?GUID는 'Globally Unique Identifier'의 약자로, '전역적으로 고유한 식별자'라는 뜻입니다.GUID는 128비트의 크기를 가지며, 이는 전 세계 어디에서든 고유하게 생성될 수 있는 값을 의미합니다. GUID는 주로 여러 데이터베이스나 서버 간에 데이터를 고유하게 식별하거나 병합할 필요가 있을 때 사용됩니다. 예를 들어, 여러 서버에 분산되어 있는 데이터베이스에서 각 레코드를 고유하게 식.. [Tip]테스트 코드를 작성하는 이유, Given When Then, FIRST 속성 테스트 코드 테스트 코드는 우리가 작성한 코드나 비즈니스 로직 자체를 테스트하기 위해 작성된 코드를 의미한다. Agile 방법론 중 하나인 TDD(Test Driven Development)도 등장한 만큼, 테스트 코드를 더 잘 작성하고 활용하기 위해 고민해 볼 필요가 있다. 테스트 코드의 중요성 개발 과정에서 문제를 미리 발견할 수 있다. 문제를 미리 발견함으로써 문제 상황을 실제 서비스 배포 이전에 방지할 수 있다. 문제가 발생할 수 있는 여러 상황에 맞춰 테스트 코드를 작성하는 것이 중요하며, 이를 통해 잠재된 문제를 발견하는 것에 도움이 된다. 일부러 오류가 발생할 수 있는 테스트 코드를 작성하여 예외 처리가 잘 작동하는지를 확인하거나, 정확히 의도한 비즈니스 로직에 맞춰 테스트 코드를 작성해서 .. [Spring] Lombok Lombok (롬복) Lombok은 데이터(모델) 클래스를 생성할 때 반복적으로 사용하는 getter/setter같은 메서드를 어노테이션으로 대체하는 기능을 제공하는 라이브러리이다. 이는 반복되는 코드를 생략하여 가독성을 높여줄 수 있다. 또한 어노테이션 기반으로 코드를 자동 생성해주어 생산성이 높아진다. Lombok 의존성 추가 Gradle compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' build.gradle에 dependencies에 위 코드를 추가 Maven org.projectlombok lombok true pom.xml에 위 코드를 추가 Lombok의 주요 어노테이션 @Getter, @.. [개발 일기] OSIV가 false일 때 LazyInitializationExceptions 이거 때매 거의 이틀을 삽질했다.... 이해가 안되어서.... OSIV=false + getReferenceId - @Transactional = LazyInitializationExceptions 문제의 코드 @Override public Product selectProduct(Long number) { Product selectedProduct = productRepository.getReferenceById(number); return selectedProduct; }다음과 같이 getReferenceById()를 사용한 객체를 리턴하고, @Override public ProductResponseDto getProduct(Long number) { Product product = productDAO.. [Spring] OpenSessionInViewFilter Spring Boot에서의 SessionSpring Boot에서 Session 은 서버와 클라이언트 간의 통신 상태를 유지하는 데 사용됩니다. Session은 사용자 정보, 로그인 상태, 장바구니 내용 등과 같은 데이터를 저장하는 데 사용할 수 있습니다.세션 작동 방식Spring Boot는 기본적으로 Tomcat 서블릿 컨테이너를 사용하며, Tomcat은 HTTP Session을 사용하여 Session을 관리합니다. HTTP Session은 클라이언트 컴퓨터에 저장되는 쿠키를 사용하여 식별됩니다.세션 생성:클라이언트가 서버에 처음 요청을 보내면 서버는 새 HTTP 세션을 생성하고 클라이언트 컴퓨터에 쿠키를 보냅니다.쿠키에는 세션 ID가 포함되어 있으며, 클라이언트는 이후 요청에 쿠키를 포함하여 서버에 보.. [Spring] Controller와 API 구현하기 Controller 컨트롤러는 비즈니스 로직과 클라이언트의 요청을 연결하는 역할을 한다. 즉 컨트롤러는 클라이언트로부터 받은 요청에 대해 서비스 레이어에 구현된 적절한 메서드를 호출해서 결괏값을 받는다. @Controller와 @RestController @Controller와 @RestController는 Spring Framework에서 웹 컨트롤러를 만들 때 사용되는 어노테이션이다. 두 어노테이션 모두 컨트롤러 역할을 수행하지만 작동 방식과 처리하는 요청 유형에 있어 차이가 있다. * 아래는 Google Gemini 답변입니다. 기능 @Controller @RestController 기능 웹 요청 처리 웹 요청 처리 및 JSON 응답 자동 생성 반환 값 View 객체, ModelAndView, St.. 이전 1 ··· 9 10 11 12 13 14 15 ··· 20 다음