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

이전 게시글에선 Socket과 Socket 통신에 대해 알아봤고 이번에는 웹소켓에 대해 정리해보겠다.웹소켓(WebSocket)초기의 인터넷 통신 방식인 HTTP를 통해 실시간 통신(Polling, Long Polling, SSE 등)을 구현하는 것에 한계점이 있어 이를 극복하기 위해 등장한 프로토콜이다.클라이언트와 서버 간의 실시간 네트워킹(Real-Time Networking) 및 전이중 통신(양방향 통신: Full-Duplex)을 지원하는 프로토콜로 지속적인 연결을 유지하며 클라이언트와 서버 간의 실시간 데이터 전송을 가능케 한다.HTTP 프로토콜을 사용하여 초기 연결을 설정HTML5에 등장 실시간 웹 애플리케이션을 위해 설계된 통신 프로토콜이며, TCP(Transmission Control Prot..

우리가 흔히 사용하는 HTTP 통신은 무상태성(Statelessness) 및 비연결성(Connectionless) 이렇게 두가지 특징을 가진다. 그러나 채팅기능이나 주식/코인 시세를 실시간으로 조회하는 기능들과 같이 실시간 업데이트가 필요한 경우 서로의 통신이 주기적으로 이루어져야 한다. 이러한 양방향 통신(주기적인 통신) 방법으로 4가지를 정리해보겠다.Polling클라이언트가 일정한 주기로 서버에 데이터를 요청하는 방식HTTP 통신을 기반클라이언트는 특정 주기마다 서버에 새로운 데이터가 있는지 요청(Ajax)하고, 서버는 해당 요청에 대해 응답(장점) 단순한 로직으로 구현이 쉽고 무상태성을 유지할 수 있다.(단점) 요청 주기가 길어지면 데이터가 실시간으로 업데이트 될 수 없으며 요청 주기가 짧아지면 그..

정리하게된 계기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) 공격웹 해킹..