Back-End20 [Spring Boot] HTTP 통신 방식과 Controller 연결 무슨 요청인지 알고 Mapping으로 들어오니?Mapping 종류만 다르고 URI 같으면 어쩔려고? 물은 우리는 답을 알고있다.서버에 요청을 해봤다면 모두가 아는 사실.GetMapping해두면 요청보낼때 METHOD : GET 으로 보내면됨~ 당연한 소리이다. 간단한 예로const res = fetch('http://localhost:8080/uri', { method: "GET",}); 위 코드처럼 HTTP 요청을 보낼 때 method를 정의해주면 아래와 같이 요청이 전송된다.GET /uri HTTP/1.1 Host: localhost:8080 그리고 요청의 결과를 아래와 같이 돌려준다.HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: 3.. 2025. 5. 13. [Spring Boot] Controller vs RestController Controller vs RestController, Controller로 다 해결 되잖아~그렇긴 한데.... Controller의 역할보편적으로 Controller는 HTTP 요청이 들어오면 먼저 받는 구간이라고 생각하면된다. Controller가 받고 Service에서 기능을 실행한 결과를 다시 Controller가 클라이언트 측으로 전달한다. (실질적인 제일 앞단은 아니긴함, security도 있고,, 뭐,,) @Controller ?일단 Controller는 주로 기능 실행의 결과를 Model 또는 Response 객체에 담아 uri를 return한다. 간단히 요청 진행을 보면 아래와 같다. (실제로는 몇가지 동작이 더 있음, 개략적인 흐름만 보기!)요청 URI에 따른 Controller로 전달되.. 2025. 5. 13. [Spring Boot] 순환 참조 해결하기 아, 내가 최대한 안그러려고 했는데 이게 하다보니...보통 User 연관 로직에서 많이 발생되는 순환참조를 해결하는 방법을 알아보자. 순환참조란?쉽게 말하면 두개 이상의 클래스가 서로가 서로를 Bean으로 DI하는 경우에 순환참조가 일어난다. 아래 대화를 통해 순환 참조를 쉽게 이해해보자.SpringBoot : 철수야 놀러 갈래?철수 : 영희가면 갈게.SpringBoot : 영희야 놀러 갈래?영희 : 민수가면 갈게.SpringBoot : 민수야 놀러 갈래?민수 : 철수가면 갈게.SpringBoot : ????????? 다 같이 놀러가야 하는데 이러면 스프링부트도 놀러가기 싫어진다. 누구 하나라도 남에게 의존하지 않고 결정한다면 모두 놀러갈 수 있는데, 모두가 의존성을 요하는 부분이다. 이것이 순환참조 에.. 2025. 5. 13. [Spring Boot] 의존성 주입, @Autowired vs @RequiredArgsConstructor Spring Boot Bean 객체 의존성 주입 방식,@Autowired ? @RequiredArgsConstructor ? 뭐가 좋을까 기본적인 차이@Autowired@RequiredArgsConstructor필드 주입생성자 주입가변성 (final 불가)불변성 (final 붙음)springframework beans factory annotationlombok annotation필드 변수에 설정클래스에 설정 (한방~)Runtime ExceptionCompile Exception 기본적인 차이만 보면 @RequiredArgsConstructor를 쓰는게 무조건 좋아보인다. 이거 왜 쓰는데?기본적으로 Bean 객체를 생성한 후 다른 클래스에서 해당 Bean을 불러오기 위해 DI(Dependency Inje.. 2025. 5. 13. [Spring Boot] IntelliJ Spring Boot Project 생성 파일 분석 IntelliJ를 이용하여 Spring Boot Project를 생성하면 기본적으로 생성해주는파일들의 의미와 하는 일을 살펴보자. 생성 파일 프로젝트를 생성하면 사진과같이 몇 가지 파일이 생성된다. 이 중 .md 파일을 제외한 git, gradle관련 파일들을 살펴보자. .gitattributes/gradlew text eol=lf*.bat text eol=crlf*.jar binary .gitattributes는 리포지토리에 특정 규칙 및 설정을 적용하기 위해 사용되는 파일이다. 기본적으로 파일을 생성하면 위와 같은 설정이 defualt로 적혀있다. 해당 규칙은 보통 운영체제에 따른 리딩 형식 차이 때문에 적용한다. 보편적으로 위와 같이 eol=lf, eol=crlf 라고 적힌 부분이 그 예시인데, .. 2025. 5. 13. [Spring Boot] FFmpeg + 스프링부트 연동 및 사용하기 이미지, 영상, 음원 등의 파일 인코딩을 변경하고 압축하기 위해FFmpeg를 이용하기 FFmpeg 다운로드https://ffmpeg.org/ 먼저, ffmpeg를 다운로드하여 원하는 경로에 설치한다. win, linux 설정이 다르기 때문에 잘 확인! FFmpeg yml 설정ffmpeg: exe: location: [ffmpeg 실행 파일 절대 경로] (ex. /usr/bin/ffmpeg)ffprobe: exe: location: [ffprobe 실행 파일 절대 경로] (ex. /usr/bin/ffprobe)file: path: [encoding 파일 저장 절대 경로] (ex. /home/ubuntu/app/) 설치한 경로 내부의 ffmpeg, ffprobe 실행파일 및 실행 이후 인코딩.. 2025. 5. 12. 이전 1 2 3 4 다음