spring boot

API를 개발하다 보면 다양한 예외 상황을 맞닥뜨린다. 이런 예외들을 각각의 컨트롤러마다 개별적으로 처리하게 되면 어떤 문제가 생길까? 가장 큰 문제는 코드 중복이다. 똑같은 try-catch 블록을 모든 엔드포인트에 반복해서 작성해야 하고, 나중에 에러 메시지를 바꾸려면 수십 개의 파일을 일일히 수정해야 한다. 거기다 개발자들마다 예외를 처리하는 방식도 달라서 응답 형식도 제각각이 될 수 있다. 비즈니스 로직과 예외 처리 코드가 뒤섞인다는 문제도 있다. 컨트롤러나 서비스 코드를 익을 때 정작 중요한 비즈니스 로직은 안보이고 try-catch 블록만 가득한 경험도 많이 했다. 이제 기본적인 예외 아키텍처에 대해서 알아보자. 예외 처리 아키텍처 우리 프로젝트는 예외를 3단계 계층 구조로 설계했다...
요즘 jwt를 공부중인데 그 전에 쿠키와 세션에 대해 어느 정도 체계를 잡고 넘어가고 싶어서 정리한다. 웹은 왜 기억을 못할까? 우리가 웹 사이트를 방문하면 거기서 다양한 활동들을 한다. 로그인을 하거나 장바구니에 상품을 담거나 하면서 로그인 되어있는 상태에서 각 활동을 수행한다. 근데 사실 웹 자체는 이런 걸 기억하지 못한다. 왜냐하면 웹 통신의 기본 프로토콜인 HTTP는 Stateless(무상태) 프로토콜이기 때문이다. 무상태란? -> 서버는 요청이 올 때마다 누군지, 뭘 했는지에 대한 기억이 없이 새로 처리한다는 의미이다.매번 처음 보는 손님처럼 대한다고 생각하면 된다. 쿼리 파라미터를 계속 유지하면서 보내는 건 어렵고 번거로운 작업이기 때문에 쿠키와 세션을 사용하는 것이 좋다. 쿠키 쿠키는..
· Infra/AWS
+          전체적인 순서 두 명이서 작업을 했기에 상대의 레포지토리에 fork해온 것부터 기준으로 하겠다.  스프링부트 파일 작성 및 확인  → 도커파일 작성 → jar 파일 생성 → 도커 이미지화 →  ecr에 푸쉬       깃허브 관리 + jar 파일 + dockerfile 이미지 만들기  상대가 레포지토리를 만들었다. 그럼 나는 먼저 상대의 레포지토리를 내 레포지토리로 fork해와야 한다.    이렇게 상대의 레포지토리를 보면  fork라는 버튼이 있다. 누르면 내 레포지토리로 끌어올 수 있다.   포크하고 나서 확인해보면 이렇게 두 개의 브랜치로 나눈 것을 확인할 수 있다. develop 브랜치는 개발 진행하는 과정이고 master는 배포용이다. 아직 개발단계이므로 develop 브랜치..
스프링 부트에 대해 공부하다보면 Maven과 Gradle이 계속 눈에 밟힐 것이다. (아닐 수도 있고) Gradle이 Maven보다 더 최근에 나온 빌드 도구라는 것 말고는 아는 게 없어서 공부하는 김에 포스팅하게 되었다. 이 두 가지 빌드 관리 도구가 어떤 역할을 하는고 어떤 차이가 있는지 비교해보자.    ⚒ 빌드 관리 도구(Build Tool) 빌드 관리 도구란 프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드해주는 도구이다. 소스 코드를 컴파일, 테스트, 정적 분석 등을 하여 실행가능한 앱으로 빌드해준다. 프로젝트 정보 관리또한 해주고 테스트 빌드, 배포 등의 작업까지 진행해준다. 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트 관리까지 해주는 역할..
나는 스프링 부트에 대해 거의 모르는 우주 먼지이다. 그러나 독학을 하면서 내가 즐겨 듣는 유튜브와 aws 캠프 강사님께 물어보며 직접 프로젝트를 진행했다. 스프링에 대해선 이 프로젝트를 시작으로 지속적인 공부와 포스팅을 꾸준히 할 것이다. 일단 몰라도 시작해봐야 뭐라도 된다. 우선 프로젝트 기획 먼저 해보자Spring boot 활용해서 로컬에서 게시판 띄우기aws EC2, RDS 생성하기EC2에서 환경 구축(웹 서버, jdk, gradle)rds db 연결쿼리문 작성 → 연결.사용할 프로그램은 IntelliJ, mariaDB, workbench, spring boot, mobaXterm, aws, ec2, rds이다. 1. 로컬에서 먼저 완료하기 이번 프로젝트를 위해서 스프링 부..
hskhsmm
'spring boot' 태그의 글 목록