토이프로젝트/나만의 프로젝트

이번 프로젝트 때 스프링 부트로 1 : 1 채팅을 구현해야 합니다. 그래서 여러 가지 내용을 열심히 공부해 봤습니다. 프로젝트 채팅 1 : 1 조건 고민 상담 게시판에서 채팅방이 시작됨 채팅 매칭을 누르면 채팅방이 생성 대화를 한 내용은 DB에 저장 세션 값을 가지고 있어야 한다. WebSocket을 선택한 이유 WebSocket은 양방향 실시간 통신을 제공하는 프로토콜 및 API(응용 프로그래밍 인터페이스)입니다. 일반적으로 웹 브라우저와 웹 서버 간의 실시간 통신을 위해 사용됩니다. WebSocket은 기존의 HTTP 프로토콜을 확장하여 지속적인 연결을 제공하고, 클라이언트와 서버 간에 데이터를 양방향으로 주고받을 수 있게 합니다. WebSocket을 사용하기 전 일반적으로 웹은 클라이언트에서 서버로..
저번 글에서는 스프링 시큐리티를 이용해 세션 기반 인증을 하였습니다. 세션 기반 인증을 사용해 사용자마다 사용자의 정보를 담은 세션을 생성하고 저장해서 인증을 합니다. 토큰 기반 인증은 서버가 토큰을 생성해서 클라이언트에게 제공하면, 클라이언트는 이 토큰을 갖고 있다가 여러 요청을 이 토큰과 함께 신청합니다. 그럼 서버는 토큰만 보고 유효한 사용자인지 검증합니다!! 토큰을 전달하고 인증받는 과정 클라이언트가 아이디어와 비밀번호를 서버에게 전달하면서 인증을 요청합니다. 서버는 아이디어와 비밀번호를 확인해 유효한 사용자인지 검증합니다. 유효한 사용자면 토큰을 생성해서 응답합니다, 클라이언트는 서버에서 준 토큰을 저장합니다. 이후 인증이 필요한 API를 사용할 때 토큰을 함께 보냅니다. 서버는 토큰이 유효한지..
https://product.kyobobook.co.kr/detail/S000201766024 스프링 부트 3 백엔드 개발자 되기: 자바 편 | 신선영 - 교보문고 스프링 부트 3 백엔드 개발자 되기: 자바 편 | ★ 자바 백엔드 개발자가 되고 싶다면★ 자바 언어 입문 그다음에 꼭 보세요실력을 갖춘 개발자로 성장하려면 시작이 중요합니다. 그래서 이 책은 product.kyobobook.co.kr 이번 방학 동안 이 책으로 스프링 부트 3을 공부해 보려고 합니다. 이 책은 스프링 부트 3을 사용해 웹페이지를 직접 구현해 봅니다. 그중 스프링 시큐리티로 로그인 및 회원가입을 구현하는 부분이 나옵니다. 그래서 이번 기회에 스프링 시큐리티를 이 책을 통해 공부하고 정리해 보려고 합니다. 스프링 시큐리티란? 스프..
저번 프로젝트를 할 때부터 테스트 코드 공부는 꼭 필요하다고 생각했습니다. 제가 만든 API를 검사할 때 인텔리제이를 실행시키고 포스트맨으로 API 호출을 하고 받아온 JSON을 확인하는 형식이었습니다. 만든 API를 검사할 때마다 프로젝트를 재실행해야 한다는 것도 귀찮았고 포스트맨에 URL을 치는 것도 여러 번 치니 너무 귀찮았습니다. 그래서 테스트 코드 공부는 꼭 필요하다고 생각했습니다. https://product.kyobobook.co.kr/detail/S000201766024 스프링 부트 3 백엔드 개발자 되기: 자바 편 | 신선영 - 교보문고 스프링 부트 3 백엔드 개발자 되기: 자바 편 | ★ 자바 백엔드 개발자가 되고 싶다면★ 자바 언어 입문 그다음에 꼭 보세요실력을 갖춘 개발자로 성장하려..
저번에 방학 동안 프로젝트를 했을 때 github action과 CodeDeploy를 사용하여 CI/CD를 구축했었습니다. 그때는 AWS를 사용해서 AWS에 제일 최적화한 것이 CodeDeploy이기 때문에 codeDeploy를 선택했었습니다. 이번에 혼자 해보는 프로젝트에서는 docker를 사용해 보려고 합니다. Docker란? Docker는 컨테이너화된 애플리케이션을 만들고 실행하기 위한 오픈 소스 플랫폼입니다. 컨테이너는 애플리케이션과 해당 애플리케이션을 실행하는 데 필요한 모든 종속성(라이브러리, 환경 설정 등)을 포함하는 완전한 실행 환경입니다. Docker를 사용하면 애플리케이션을 컨테이너로 패키징 할 수 있으며, 이 컨테이너는 호스트 시스템에서 독립적으로 실행될 수 있습니다. 컨테이너는 가볍..
데이터베이스를 자신이 원하는 대로 잘 짜더라도 테이블에 중복된 값이나 효율적이지 않은 내용들이 포함될 수 있다. 그런 것을 처리하고자 정규화라는 과정이 중요하다. 실무에서는 3NF 까지를 많이 쓴다고 한다. 이 이후부터는 학술적인 내용이다. 데이터베이스 정규화는 왜 해야 할까? 데이터 중복 최소화 : 데이터 중복은 데이터베이스 크기를 증가시키고, 데이터의 일관성과 무결성을 저해할 수 있습니다. 정규화를 통해 데이터 중복을 최소화하면 데이터베이스 용량을 줄이고, 데이터 검색과 처리 속도를 높일 수 있습니다. 데이터 일관성 유지 : 데이터 일관성은 데이터베이스의 중요한 요소 중 하나입니다. 정규화를 통해 데이터를 분리하면 각각의 테이블에서 데이터가 일관되게 관리되므로 데이터 일관성을 보장할 수 있습니다. 데..
이번에 생활코딩에서 OAuth2.0 이란 강의를 듣고 OAuth2.0에 대한 개념을 정리해 보았다. 앞으로 구글, 네이버, 카카오의 소셜로그인을 구현하는 것이 목표이기 때문에 그전에 개념을 한번 살펴보고 싶어서 공부하게 되었다. 용어 설명 Resource Server : User의 정보를 가지고 있는 서버이다. 구글, 네이버, 카카오 같은 곳이라 생각하면 될 것 같다. Resource Owner : 구글, 네이버, 카카오 같은 곳에 회원가입이 되어 있는 유저이다. 우리 앱을 사용할 유저라 생각하면 될 것 같다. Client : 우리의 서비스이다. 등록 절차 client가 Resource Server를 이용하기 위해서는 Resource Server에 대한 Register를 받아 놔야 한다. 이때 3개의 값..
이번에는 이메일 인증을 하기 위해 SpringBoot에서 이메일 인증 코드를 보내는 것을 해볼려고 한다. 이메일 인증 구현은 링크 이 사이트를 참고해서 실행했다. 시작하기 전 구글 계정 세팅 나는 내 구글 계정을 사용해서 이메일을 보낼려고 한다. 크롬에서 오른쪽 상단에 자신의 프로필 클릭하고 구글 계정 관리를 들어간다. 왼쪽에 보안이 있다. 보안 중 비밀번호 앱 비밀번호를 선택한다. 메일 Windows 컴퓨터를 클릭하고 생성을 누른다. 이렇게 하면 16자리의 Spring boot에서 쓸 비밀번호를 얻게 된다. Gmail 이메일 발송 한도 https://support.google.com/a/answer/166852?hl=ko Google Workspace의 Gmail 전송 한도 - Google Worksp..
Wooooong!!
'토이프로젝트/나만의 프로젝트' 카테고리의 글 목록