일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CS
- 스프링 부트
- 배포
- CI/CD
- spring cloud
- spring boot
- spring batch
- 스프링 시큐리티
- 스프링 배치
- web server
- Spring
- 스프링
- 웹 서버
- mysql
- HTTP
- 가상화
- computer science
- JPA
- Spring Security
- ORM
- 자바
- 영속성 컨텍스트
- Java
- 데이터베이스
- 도커
- 백엔드
- virtualization
- 컨테이너
- vm
- Container
- Today
- Total
목록CS (7)
개발 일기

정리하게된 계기PUT과 PATCH 차이을 비교하는 블로그를 찾으면서 자연스레 RESTful한 API에 대한 블로그를 읽게됐는데 뭐 당연히 GET, POST 이런거 좀 대충 써주면 RESTful하다 라고 생각했는데 내 자신이 참 부족했던 것같다. 전혀 아니였다. 이제껏 수정 API에도 POST를 섞어 쓰는 등 대부분의 요청을 GET, POST를 통해 처리했고 그리고 또 여러 이유들로 내가 설계했던 API는 100% RESTful하다고 볼 수 없다고 생각이 들었다. 그래서 아직 공부하는 입장이니 다시 처음부터 기초를 닦는다고 생각하고 다시 정리해보기로 했다.REST와 RESTful이란?그래서 우선 REST란? World Wide Web(WWW)와 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한..

왜 공부하게 됐나?최근 단순히 express, spring boot 프레임워크를 통해 로컬에서 개발하면서 배포 인프라 공부에 항상 부족함을 느꼈다. 어쨋든 로컬에서만 돌려서는 실제 서비스를 할 수가 없는데 지금 당장 프레임워크만 다뤄서 될게 아니라 도커, 쿠버네티스, 깃 액션 등 CI/CD에 대한 나의 능력도 키워야 되겠다는 생각이 들었다. 그래서 Docker부터 공부하기 시작했고 EC2에 Git Actions을 통해 CI/CD 자동화에 성공했다고 생각했다. 근데 평소에 단순히 CI/CD가 통틀어 배포겠거니 생각하고 썼는데 내가 좀 잘 못 생각하고 쓰고 있었던 것 같다. 그래서 우선 CI/CD가 무엇인지에 대해 정리해보자 블로그를 쓰게 됐다.배경개발을 해보니 실제 서비스를 배포할 때 까지는 소스 코드 개..

공부하게된 계기개발자 유미님의 유투브 강의를 보고 스프링 부트를 통해서 간단한 CRUD기능과 Spring Security를 통해 JWT 토큰 기반 인증을 구현해보고 있었다. 그때 SecurityConfig 클래스 내의 filterChain 메서드에서 CORS (Cross-Origin Resource Sharing) 구성을 설정해보는 것이 있었는데 평소에도 CORS라는게 종종 보이기도 했고 나중에 개발을 하면서 이 설정 파일을 작성하면서 매번 모르고 할 수는 없을 것 같았다. 그래서 정리를 언젠간 꼭 해야되겠다는 생각을 가지고 있었는데 트러스 창업팀에서 프론트에서 테스트로 백엔드에 요청을 보내보는데 프론트엔드는 http://localhost:3000으로 호스팅한 상황이였고 백엔드 API는 http://lo..

공부하게 된 계기인증 인가를 구현할때 대표적으로 두 가지, 세션 기반 그리고 토큰 기반(JWT 토큰)이 있다. 기존에 창업팀에서 개발을 할때 인증 및 인가를 JWT 토큰을 통해 구현했다. 그 이유는 바로 "구글링 했을 때 사람들이 많이 쓰는 것 같으니까. 그냥 좋아 보여서." 라는 이유 였다. 잘못됐다. 각각의 구현 방식에 대해 이해하고 장단점을 파악하고 그거에 맞게 하나를 선택해야 했지만 그렇지 못했다. 그래서 이제라도 세션을 통한 인증 및 인가에 대해서도 공부해야할 것 같아서 알아보게 됐다. 세션 기반 인증 인가 도입 이유HTTP는 Stateless와 Connectionless라는 특징을 가지고 있다.HTTP StatelessHTTP(Stateless Hypertext Transfer Protoco..

인증 (Authentication) 인증은 사용자가 특정 서비스에 접근하려고 할 때, 해당 사용자가 누구인지 확인하는 과정이다. 이를 위해 사용자는 일반적으로 식별 가능한 정보를 제공해야 한다. 이 과정은 서비스의 서버가 해당 사용자가 서비스에 등록되어 있는지 확인하고, 제공된 정보가 올바른지 검증하는 과정을 포함한다.간단한 예시로, 어떤 웹사이트에 로그인하여 글을 작성하려면 사용자는 해당 웹사이트에 등록된 회원이어야 한다. 사용자가 로그인 페이지로 이동하고, 등록된 아이디와 비밀번호를 입력하면, 웹사이트는 해당 정보를 확인하여 사용자를 인증한다. 이때 웹사이트는 입력된 아이디 및 비밀번호가 데이터베이스에 존재하는지 검증한다.따라서 인증은 시스템에 등록된 사용자의 신원을 입증하는 과정으로, 해당 사용자가..

공부하게 된 계기Express에서 Spring Boot 프레임워크를 공부하게 되면서 Spring Boot에서는 Spring Security와 JWT로 회원가입/로그인 기능(인증 및 인가)을 어떻게 구현하는지 알고 싶어서 조사를 하다가 내가 직접 구현했던 방식과 완전히 다른 구현 방식을 발견했다. 이때 그 구현 방식을 채택하신 분은 왜 그런 방식으로 구현했는지 근거가 다 있는 것을 보고 그 근거 중에 이러한 공격들에 대한 이유도 포함됐는데 구체적으로 알아볼 필요가 있을 것 같고 앞으로 제가 Spring Security와 JWT로 인증 및 인가를 구현하는 다양한 방식 중 하나를 채택할 때 근거를 채택할 때 도움이 될 것 같아서 공부하게 됐다. XSS(Cross-site Scripting) 공격웹 해킹..

스프링 생태계를 공부하다가 스프링 부트의 기능 중에 내장 서버라는 것이 있었는데 웹 애플리케이션을 실행하기 위해 필요한 Tomcat, Jetty등과 같은 웹 어플리케이션 서버 (WAS - Web Application Server)를 애플리케이션 내부에 포함하는 기능이다. 스프링 부트는 이러한 내장 서버를 통해 별도로 서버를 설치하고 구성하는 과정 없이, 애플리케이션 빌드 파일(.jar) 실행 만으로 웹 서비스를 배포할 수 있는 환경을 제공하게 된다고 했다. 이때 웹 어플리케이션 서버에 대해 잘 알지 못해서 웹 서버와 다른 것인지 정리해보고자 한다.또한 공부를 하면서 내가 이전에 창업 팀에서 활동하면서 배포했던 방식이 얼마나 단순하고 일차원적인 배포였는지를 알 수 있었다.나의 첫 배포는?전체적인 그..