| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- R
- Stack
- Graph
- insertion sort
- list 컬렉션
- 윤성우의 열혈 자료구조
- buffer
- 혼자 공부하는 C언어
- Serialization
- C programming
- s
- coding test
- stream
- 윤성우 열혈자료구조
- Selection Sorting
- 메모리구조
- Algorithm
- C 언어 코딩 도장
- 이스케이프 문자
- JSON
- 알기쉬운 알고리즘
- 이것이 자바다
- datastructure
- Today
- Total
목록Server/Spring (28)
Engineering Note
CommandLineRunner- 스프링부트가 실행되고 트래픽을 받기전 실행하고 싶은 코드가 있을 때 사용하는 인터페이스 사용 예시package com.example.demo;import com.example.demo.entity.Member;import com.example.demo.repository.MemberRepository;import lombok.RequiredArgsConstructor;import org.springframework.boot.CommandLineRunner;import org.springframework.stereotype.Component;import java.time.LocalDateTime;@Component@RequiredArgsConstructorpublic c..
빌드 도구 종류- 메이븐, 그레이들 메이븐- 프레임워크에 관계없이 앱의 빌드 프로세스를 쉽게 관리하는데 사용하는 빌드 도구 그레이들- 메이븐과 마찬가지로 앱 프로세스를 쉽게 관리하는 빌드 도구 빌드도구가 수행하는 일- 앱에 필요한 의존성 내려받기- 테스트 실행- 구문이 정의한 규칙 준수 여부 검증- 보안 취약점 확인- 앱 컴파일- 실행 가능한 아카이브에 앱 패키징(JAR, WAR) GroupId : 관련된 여러 프로젝트를 그룹화 하는데 사용아티팩트 ID: 현재 애플리케이션 이름=> 지정하지 않으면 기본값으로 설정된다. 메이븐 프로젝트 구조는 프로젝트 개발을 위해 선택한 IDE에 의존하지 않는데, 메이븐 프로젝트 구조에서 중요한 파일은 pom.xml이다. maven 프로젝트 주요 구성pom.xml:..
본 글은 Spring의 핵심인 AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)를 학습하면서 @Transactional 어노테이션이 AOP의 대표적인 사례로 볼 수 있음을 알고 두 개념의 관계를 살펴보면서 각 개념을 더 깊이 이해하기 위한 목적으로 작성한 글입니다. @Transactional 어노테이션과 Spring AOP의 관계@Transactional은 **Spring AOP (Aspect-Oriented Programming, 관점 지향 프로그래밍)** 개념이 적용된 대표적인 예시입니다.Spring은 AOP를 활용하여 개발자가 **비즈니스 로직(핵심 관심사)**과 **트랜잭션 처리(Commit/Rollback 등 부가 기능, 횡단 관심사)**를 분리할 수 있도록 지..
1. 의존성 주입이란?의존성 주입(Dependency Injection, DI)은 객체가 사용할 다른 객체를 직접 생성하지 않고, 외부에서 주입받는 방식을 말합니다.스프링에서는 컨테이너(ApplicationContext)가 객체를 Bean으로 관리하고, 필요한 곳에 자동으로 주입해주기 때문에 @Autowired나 생성자 주입을 통해 쉽게 DI를 구현할 수 있습니다. 2. 왜 필요한가? (순수 자바 관점)순수 자바에서 보자면, 클래스가 의존 객체를 직접 생성하는 경우 테스트와 유지보수가 어렵습니다. 의존성을 직접 생성하는 경우class A { private B b = new B(); // A가 B를 직접 생성 public void doSomething() { b.work(); ..
Spring 6.2.11 버전 공식문서를 참고하여 작성하였습니다. @Configurationpublic class WebConfiguration implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**") .addResourceLocations("/public", "classpath:/static/"); }} "/resource"로 시작하는 요청이 있다면 그 다음에 설정된 상대경로 "/public"(루트 아래의 상대경로로 "/public" ), "classpath:/static/"(cl..
Spring 공식문서 6.2.11 버전 공식문서 정리 내용입니다.(250915 작성 기준)@RequestParam- 컨트롤러의 메서드 인자에 Servlet request parameter를 바인딩 하게 해주는 어노테이션- query parameter와 form data를 처리할 수 있다.- 어노테이션 선언시 인자값은 필수지만, required = false 로 옵션으로 변경 가능하다. 1. query paramter 처리하는 예제@Controller@RequestMapping("/pets")public class EditPetForm { // ... @GetMapping public String setupForm(@RequestParam("petId") int petId, Model model) { ..
@PathVariable- get 요청을 보낼때, URL 자체에 값을 담아 요청하게 해주는 어노테이션 사용 방법 첫 번째 라인 주석에 있는 요청 예시 URL을 보면 중괄효({})로 표시된 위치에 값을 받아 요청을 하면(실제 요청 시에는 중괄호는 들어가지 않는다.) 그러면 @GetMapping 어노테이션에서 어느위치에서 값을 받을 지정할 수 있고, 지금 예시는 아래처럼 가장 마지막에 값을 받도록 지정했다. 그리고 메서드에서 매개변수와 그 값을 연결하기 위해 3번 줄과 같이 @PathVariable을 명시하며, @GetMappping 어노테이션과 @PathVariable에 지정된 변수의 이름을 동일 하게 맞춰서 메서드로 값을 전달할 수 있다.// http://localhost:8080/api/v1/get-a..
오늘은 JPA를 테스트하는 어노테이션, @DataJpaTest에 대해 정리하려고 한다.@DataJpaTest- JPA Reposiotry와 Entity에 대해서 테스트를 해주는 어노테이션이다.- 이 어노테이션을 사용하면 자동 환경구성을 해주고, 기본적으로 Embbedded in-memory Database를 사용한다. @AutoConfigureTestDatabase를 사용해서 실제 DB 등으로 오버라이딩해서 사용할 수 있다.- Junit4를 사용하면 JPA만 테스트하더라도 @RunWith(SpringRunner.class) 를 같이 사용해야 한다.이 어노테이션을 사용하면 실제 DB를 사용하지 않고 정말 비즈니스 로직에 대해 점검 할 수 있다.세팅 방법build.gradletestImplementation..