일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- JSP
- 프로그래머스
- @RestController
- 뉴렉처
- 서블릿
- SQL
- 코테
- MVC2
- 세션
- 인프런
- 인텔리제이
- 서브쿼리
- toUpperCase
- 스프링
- MVC
- Model1
- DDL
- 기술 대비
- AOP
- 메이븐
- select
- 김영한
- 자바
- @Controller
- 프레임워크
- Join
- STS
- order by
- 코딩테스트
- Model2
- Today
- Total
목록개발(0) (36)
Heestory

Spring Boot 프로젝트를 JAR 파일로 배포할 때 application.yml 설정이 어떻게 적용되는지 헷갈릴 수 있다. 이번에 개발망 JAR를 실행시키려 했는데 실행이 되지 않았고 JAR 내부에 application.yml이 포함되어 있는 경우, 또는 외부 설정 파일을 사용할 경우 Spring Boot는 특정 우선순위에 따라 설정을 로드한다는 걸 몰랐었다. 이번 글에서는 Spring Boot의 설정 파일 적용 원리와 우선순위를 정리해보았다. 1. Spring Boot에서 설정 파일 적용 원리Spring Boot는 application.yml 또는 application.properties 파일을 이용해 애플리케이션 설정을 관리한다. JAR 배포 시, Spring Boot는 설정 파일을 다음과 같은..

1. 문제 상황업무 중 유지보수 과정에서 API 응답 속도가 현저하게 느려지는 현상을 발견했다. 평소에는 빠르게 응답하던 API가 갑자기 1건당 2~3초까지 걸리기 시작했다.처음에는 API 서버 문제일 가능성을 생각했지만, 다음과 같은 의문이 들었다:6개월 주기로 DB 백업을 하고 있었는데, 백업 주기가 다가와서 발생한 문제일까?DB에 로그가 너무 많이 쌓여서 성능이 저하된 걸까?특정 테이블에서 데이터를 너무 많이 조회하는 쿼리가 있을까?이러한 가능성을 고려하여 실시간 로그를 확인하며 원인을 분석했다. 2. 원인 분석✅ 실시간 로그 분석API의 응답 속도를 측정하면서 실시간 로그를 분석한 결과, API 요청이 들어오고 2~3초 뒤에야 응답을 받는 것을 확인했다.다행히도 SFTP를 통해 상대방 서버의 로..

✅ 1. 페이징 처리란?페이징 처리는 대량의 데이터를 일정한 크기로 나누어 필요한 부분만 조회하는 방식입니다. 이는 데이터베이스의 성능을 최적화하고, 사용자에게 빠른 응답 속도를 제공합니다.Page: 전체 페이지 정보Pageable: 페이지 요청 정보 (페이지 번호, 크기, 정렬 기준 등)Slice: 다음 페이지 유무만 확인 가능 (더 가벼움) 🚀 2. 기본적인 JPA 페이징 처리📌 Repository 설정public interface ReviewRepository extends JpaRepository { Page findByProductId(Long productId, Pageable pageable);} findByProductId 메서드는 Pageable을 파라미터로 받아 페이징 처리된 ..

JPA를 공부하면서 순환참조에 대해 제대로 이해가 되지 않았고, 나에게도 이런 문제가 생길까? 했는데 토이 프로젝트 과정 중 떡하니 바로 생긴 순환 참조 ㅎㅎ 이번 글에서는 ProductController에서 발생한 중복 데이터 반환 문제의 원인과 그 해결 방법을 알아본다. ✅ 1️⃣ 문제 원인 분석 📌 (0) 순환 참조 문제란?양방향 관계에서 JSON 직렬화 시 무한 루프 발생@Entitypublic class Product { @OneToMany(mappedBy = "product", cascade = CascadeType.ALL) private List reviews;}@Entitypublic class Review { @ManyToOne @JoinColumn(name = ..

주니어지만, 세팅이 정말 반은 아닐까 하는..이번 토이 프로젝트에서는 AWS와 Vue를 사용하며, 새노트북으로 이용하기 때문에 vue.js의 경우 새로 세팅해야한다. AWS의 경우는 버튼만 잘 누르면 30분 뚝딱이고(하지만 나는 3시간..이유 하단)vue.js의 경우는 버벅거리지 않는다면 30분(하지만 나는 2시간..)바로바로 따라해보자 가입 후 오른쪽 콘솔에 로그인 손쉬운 생성시 , 보안, IP 게이트워이, DB 식별 따로 처리해야할 게 많다.내가 그렇게 3시간을 ... 표준 생성 + 사용 DB 선택 이후 자체 관리와 함께 사용 식별, 이름 선택하면 됨그리고 나서 DB 툴과 연결 여부 확인 & yml에서 확인하면 된다. Vue.js의 경우는 npm 이런 명령어를 많이 쓰는데 이건 node.js 명..

웹 개발 중 사용자에게 파일을 다운로드하도록 제공해야 하는 경우가 많습니다. 제가 이번 프로젝트에서 똑같은 파일 다운로드였으나 어떤 곳에선 되고, 어떤 곳에선 안되는 문제가 발생했었고, 1차적으로 POST방식을 썼기 때문에 다운로드가 부분적으로만 가능했었습니다. 이번 글에서는 POST 방식과 location.href를 이용한 파일 다운로드 방식의 차이점을 설명하고, 파일 다운로드를 구현하는 Java 컨트롤러 코드를 분석해 보겠습니다. 1. POST 방식 vs. GET 방식(location.href)POST 방식의 파일 다운로드POST 방식으로 파일 다운로드를 구현하려면, 서버에서 파일을 처리하고 응답으로 파일 데이터를 전송해야 합니다. 일반적으로 POST 방식은 데이터를 서버로 전달하는데 사용되며, 파..

지난 포스팅에 이어 웹 애플리케이션 개발에서 **세션(Session)**과 **쿠키(Cookie)**는 사용자 상태를 관리하는 데 중요한 역할을 합니다. 이번 포스팅에서는 세션과 쿠키의 차이점, 각각의 사용 사례, 그리고 Java Spring Framework를 활용한 대표적인 예제를 통해 개념을 명확히 정리해보겠습니다. 세션(Session)과 쿠키(Cookie)의 차이점특징세션 (Session)쿠키 (Cookie)저장 위치서버에서 관리클라이언트(브라우저)에 저장보안상대적으로 안전 (데이터가 서버에 저장됨)보안에 취약 (클라이언트에서 접근 가능)데이터 크기제한 없음 (서버 메모리나 데이터베이스 의존)4KB 제한유지 시간기본적으로 브라우저 종료 시 만료 (설정에 따라 유지 가능)만료 시간을 설정하여 브라..

문제 상황개발 환경에서 localhost를 기반으로 두 개의 프로젝트를 실행하고 있었습니다:Frontend 프로젝트: localhost:8081Admin 프로젝트: localhost:8080이 두 프로젝트에서 POST 방식으로 데이터를 전송할 때마다 사용자가 강제로 로그아웃되는 현상이 반복되었습니다.문제 원인브라우저는 기본적으로 쿠키를 도메인 + 포트 단위로 관리합니다.localhost는 브라우저에서 특별한 호스트로 처리되며, 같은 localhost에서 포트가 다른 경우에도 쿠키가 공유되지 않습니다.때문에 POST 요청을 보낼 때마다 세션이 초기화되었습니다. 문제 해결 방법이 문제를 해결하기 위해 아래 두 가지 접근 방식을 사용할 수 있습니다방법 1: 도메인 분리를 통한 세션 충돌 해결방법 설명두 프로..

@Controller에서 return redirectUrl (String)과 return ModelAndView는 반환값 처리 방식과 용도에서 차이가 있습니다. 아래는 이 두 가지 방법의 차이점을 정리한 내용입니다. 1. return redirectUrl (String)설명문자열을 반환하며, 반환된 값이 리다이렉트 경로로 간주됩니다.Spring MVC에서 redirect:로 시작하는 문자열은 클라이언트에게 HTTP 리다이렉트 응답을 보냅니다.특징리다이렉트 처리:브라우저가 지정된 경로로 새로운 요청을 보냅니다.클라이언트가 새로운 요청을 보내므로 URL이 변경됩니다.사용법: 주로 폼 제출 후 특정 페이지로 이동하거나 다른 컨트롤러 경로로 리다이렉트할 때 사용됩니다.데이터 전달 제한: 리다이렉트에서는 데..

Spring 개발자로서 @RestController와 @Controller 애노테이션을 모두 사용해본 적이 있을 것입니다. 이 둘은 비슷해 보이지만, 서로 다른 목적을 가지고 설계되었습니다. 이번 글에서는 두 애노테이션의 차이를 살펴보고, Spring 버전에 따른 변화와 실제 활용 예제를 통해 언제 어떤 것을 사용하는 것이 적합한지 알아보겠습니다. @RestController란?@RestController는 **Spring 4.0 (2013년 12월 출시)**에서 RESTful 웹 서비스를 쉽게 만들 수 있도록 도입된 애노테이션입니다. 이 애노테이션은 @Controller와 @ResponseBody를 결합한 형태로, 클래스에 적용하면 해당 클래스의 모든 핸들러 메서드가 HTTP 응답으로 데이터를 반환하도..