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

이전 글에서 알 수 있듯이 현재 한국이 사용 중인 IPv4는 사용가능한 IP 갯수가 43억개이지만, 세계 인구 수가 79억으로 43억개를 훌 쩍 넘었고 사람마다 가지고 있는 전자기기가 점점 많아지고, 인터넷 수요가 늘어나면서 IPv4 주소가 부족한 문제를 겪고 있다. IPv4의 문제점을 보완한 IPv6가 나오긴 했지만 보통은 기존의 주소체계에서 IPv6로 변경하기엔 천문학적인 비용이 들기 때문에 아직 IPv4를 사용한다. 그러나 중국은 IPv4를 폐지하고 IPv6도입을 추진 중에 있다. IPv4 주소 부족의 문제를 해결하는 방법들 중 하나인 사설(private) IP가 있다.공인 IP ( Public IP )공인 아이피는 공용 IP주소라고도 불리며 외부에 공개되어 있는 IP 주소이다.( 이름 그대로 신..
IP 주소 ( Internet Protocol Address ) 란 ?인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비, 스마트폰 등)을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소즉, 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호네트워크 상에서 다른 PC에 접속하기 위해선, 그 PC를 가리키는 주소를 알아야한다.네트워크에 연결된 특정 PC의 주소를 나타내는 체계를 바로 IP 주소라고 한다.그러나 이때 컴퓨터마다의 고유 주소라고해서 정적인 것이 아니라 그 장치가 이동을 할때마다 주소가 바뀐다. IP 는 IPv4 와 IPv6 두 가지로 나뉘며 일반적으로 IPv4를 많이 사용한다.IPv4 ( Internet Protocol version 4 )전 세계적으..
RESTful한 API 설계를 위해 무작정 POST가 아니라 PUT과 PATCH를 통해 Update를 구현해야되겠다는 생각이들었다.그런데 막상 사용하려다 보니까 CRUD 중 Update를 처리하기 위해 PUT, PATCH 이렇게 두가지가 있는데 어떤 경우에 쓰는건지 명확하게 와닿지가 않아서 정리하게 됐다.PUT Request리소스의 모든 정보를 업데이트한다.다음과 같은 리소스가 있었다고 하자.{ "id": 123, "name": "Jane Doe", "email": "jane.doe@example.com", "address": "456 Oak St, Othertown, USA"}위 내용을 담아 PUT 요청을 보내야만 아래와 같이 수정된다.그러나 { "address": "456 Oak St, Ot..

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

공부하게된 계기개발자 유미님의 유투브 강의를 보고 스프링 부트를 통해서 간단한 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) 공격웹 해킹..