본문 바로가기

spring

[Spring] JPA 성능 최적화와 동시성 제어 JPA를 사용하다 보면 연관관계 매핑, 트랜잭션 처리, 동시성 제어 등 다양한 문제에 직면하게 됩니다. 이 글에서는 실제 프로젝트에서 겪을 수 있는 성능 이슈와 동시성 문제를 어떻게 해결할 수 있는지 정리했습니다.1. @OneToMany 컬렉션: List vs Set왜 Set을 고려해야 하는가?Member 엔티티에서 선호 카테고리를 관리할 때, List와 Set 중 무엇을 선택해야 할까요?// List 사용@OneToMany(mappedBy = "member")private List memberPrefers = new ArrayList();// Set 사용@OneToMany(mappedBy = "member")private Set memberPrefers = new HashSet();주요 차이점1. 중복.. 더보기
Spring Framework 핵심 개념: 서블릿, Spring MVC, AOP에 대해 Spring Framework를 사용하면서 "왜 이렇게 편한 거지?"라는 생각을 해본 적 있으신가요? 이번 글에서는 Spring의 편리함 뒤에 숨겨진 원리를 파헤쳐보겠습니다. 전통적인 서블릿부터 Spring MVC, 그리고 AOP까지, Spring의 핵심 개념들을 하나씩 살펴보겠습니다.Part 1. 서블릿 vs Spring MVC전통적인 서블릿 개발의 불편함서블릿은 Java로 웹 애플리케이션을 만들 때 HTTP 요청을 처리하는 기본 기술입니다. 하지만 직접 사용하면 상당히 불편합니다.@WebServlet("/user")public class UserServlet extends HttpServlet { @Override protected void doGet(HttpServletReques.. 더보기
[UMC 동아리] UMC 9기 합격 후기 이번 UMC 동아리 Spring 파트로 지원 했는데 최종 합격을 했다. 먼저 UMC에 대해 소개를 0. UMC 동아리란 ?University MakeUs Challenge (UMC)는 앱&웹 서비스 런칭에 도전하는 대학생 IT 연합동아리이다. 도전 평등 자신감을 추구하며 총 22개 학교가 참여한다. 프로젝트는 432개, 스터디는 765개를 지금까지 진행했고 Android, Design, iOS, Node, PM, Spring, Web로 총 7개 파트로 나누어져있다. 또한 연합 OT, 학교 OT, Core Day, 연합 네트워킹 데이, 너디너리 해커톤, PM 데이, UMC 해커톤, 학교별 해커톤, UMC 데모데이, 너디너리 데모데이등 다양한 활동을 동아리에 참여하여 진행할 수 있다. 1. 지원 이유사실 나.. 더보기
[Spring] REST API란 ? 1. REST API란? REST API는 웹 서비스 간의 통신을 위한 아키텍처 스타일입니다. REST(Representational State Transfer)의 원칙을 따르며 리소스를 중심으로 설계됩니다. 1-1. REST(Representational State Transfer)의 개념REST 아키텍처의 주요 원칙클라이언트-서버 구조: 관심사의 분리를 통해 확장성을 개선합니다.무상태성: 각 요청은 독립적이며, 서버는 클라이언트의 상태를 저장하지 않습니다.캐시 가능성: 응답은 캐시 가능 여부를 명시해야 합니다.계층화 시스템: 클라이언트는 서버와 직접 연결되었는지 중간 서버와 연결되었는지 알 수 없습니다.인터페이스 일관성: 일관된 인터페이스로 전체 시스템 아키텍처를 단순화합니다.2. REST API의 .. 더보기
[Spring JPA] JPA란 ? 현재 진행중인 프로젝트에서 JPA를 사용하면서 느낌 점들과 추가적으로 더 학습한 내용을 정리해보려고 합니다.JPA가 무엇인지 설명하기 전에 ORM이 뭔지 먼저 설명을 해보겠습니다. 0. ORM이란? ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스를 매핑해주는 기술입니다. 개발자가 직접 SQL을 작성하지 않고도 객체를 통해 데이터베이스를 조작할 수 있게 해줍니다.예를 들어서 자바의 User 클래스가 있다면 데이터베이스의 users 테이블과 자동으로 매핑됩니다.User 객체를 생성하면 → users 테이블에 새로운 행이 추가됨User 객체의 속성을 변경하면 → users 테이블의 해당 데이터가 수정됨 User 객체를 삭제하면 → users 테이블의 해당 행이 삭제됨 1. .. 더보기
[Spring Boot / JWT] Spring Boot에서 JWT를 활용한 인증 시스템 구현 이번에 제가 Study Record라는 프로젝트를 진행하고 있는데 거기서 인증 시스템을 구현 해야하는 상황이 생겼습니다. 그래서 제가 JWT를 활용해 구현했는데 JWT가 뭔지 어떻게 구현했는지 보여드리도록 하겠습니다.목차1. JWT 소개 및 개념1-1. JWT란?1-2. JWT를 사용하는 이유2. JWT vs 세션 기반 인증2-1. 세션 기반 인증의 한계2-2. JWT의 장점2-3. JWT의 단점과 해결 방안2-4. 토큰 무효화2-5. 추가적인 토큰 무효화 방법3. Access Token과 Refresh Token3-1. 두 토큰의 필요성3-2. Access Token3-3. Refresh Token3-4. Access Token을 짧게 설정하는 이유3-5. 실제 동작 프로세스3-6. 보안 강화 효과4... 더보기
[Spring Boot] Maven과 Gradle의 차이점 Spring Boot를 사용하다 보면 빌드 도구로 Maven과 Gradle 중 하나를 선택해야 하는 상황이 자주 발생합니다. 두 도구 모두 프로젝트 관리와 빌드 자동화를 돕는 도구지만 어떤 도구를 사용할지 선택하기 위해서는 각 도구의 특징과 차이를 이해하는 것이 중요합니다. 이번 포스팅에서는 Maven과 Gradle의 차이점을 비교하고 어떤 상황에서 어떤 도구를 선택하면 좋을지에 대해 알아보겠습니다. 빌드란?빌드는 소스 코드, 리소스 파일 등을 컴퓨터가 실행할 수 있는 형태로 변환하는 과정을 의미합니다. 예를 들어 Java 소스 파일을 컴파일하여 실행 가능한 JAR 파일로 만드는 작업이 빌드의 대표적인 예입니다. 빌드 과정에는 의존성 다운로드, 테스트 실행, 패키징, 배포 등의 다양한 작업이 포함될 수 .. 더보기
[spring/ flutter] flutter를 활용해 Spring Boot 서버 화면을 웹뷰로 띄우기 [2/2] 우선 저번 포스팅을 안보고 오신분들중 아직 설치가 안되어있으시면 저번 글을 보고 오시면됩니다.https://kjunh972.tistory.com/135 [spring/ flutter] flutter를 활용해 Spring Boot 서버 화면을 웹뷰로 띄우기 [1/2]Spring Boot로 반응형 웹페이지를 만들었고 모바일 앱으로도 웹을 띄우고 싶었다.1. 개발 환경 세팅먼저, Xcode를 먼저 설치하자1. Xcode 설치https://developer.apple.com/download/all/ 로그인 - Apple idmsa.apple.comkjunh972.tistory.com저번 글에는 flutter를 활용해 Spring Boot 서버 화면을 웹뷰로 띄우기 위해 이것저것 설정을 해보았고 이번엔 프로젝트를.. 더보기