목록개발Article (143)
밤빵's 개발일지
일단 맡고있던 CRUD를 끝내고, 웹소켓을 위해 여러가지를 알아보았다. 저런 실시간느낌의 알림? 같은건 다른것도 있었는데 그건 나중에 다른 개발일지에 정리하기로하고, 오늘은 웹소켓에 대해 정리한 내용을 개발일지로 기록하기..! 웹소켓(WebSocket)은 클라이언트와 서버 간의 양방향 통신을 가능하게 하는 프로토콜로, 실시간 웹 애플리케이션 개발에 필수적인 기술 중 하나이다. 전통적인 HTTP 요청-응답 방식과 달리, 웹소켓은 지속적인 연결을 통해 실시간으로 데이터를 주고받을 수 있어, 채팅 애플리케이션, 실시간 알림 서비스, 주식 거래 시스템 등에서 매우 유용하게 사용된다. 오늘 개발일지에서는 웹소켓의 개념과 동작 원리, 주요 기능, 구현 방법, 그리고 사용 시 주의사항을 정리해봤다. 🫨웹소켓(Web..
멘토링CRUD기능을 맡고 프론트헬퍼분이 요구하신사항이 "아티클" 기능을 넣고싶다는거였다. 당연히 못알아들어서 아티클이 뭔지 한참 여쭤보고, 참고하라고 주신 사진보고 해보겠다고 해맑게 말씀을 드렸는데...! 알아보니 웹소켓을 알아야 하는거 같다...! 엄청 어렵다고 듣기도 했고, 진짜 하나도 모르는 부분이라 일단은 GPT에게 부탁을 했다...! 진환님의 요구사항에 따라 실시간 뉴스피드 같은 느낌의 아티클 (Article) 기능을 구현해보기 위해서 GPT에게 부탁한 코드예시에 대해 개발일지를 작성하려고 한다. 실시간 뉴스피드 기능은 사용자가 작성한 아티클을 다른 사용자에게 보여주고, 최신 업데이트가 즉시 반영될 수 있도록 하는 것을 목표로 하는데, 이러한 기능은 특히 사용자 간의 소셜 인터랙션을 강조하는 웹..
시큐리티... 강의를 들으면서도 어려웠고, 직접 구현하려니 더 어려웠던 건데, 지금 진행하는 프로젝트에서 이미 구현이 되어있어서 내가 작성하진 않지만 구현정도는 할 줄 알아야하지않을까?란 생각에 오늘 개발일지 소재로 정했다.🤓스프링 시큐리티(Spring Security)란?스프링 시큐리티(Spring Security)는 스프링 애플리케이션에서 보안을 제공하기 위한 서블릿 필터 기반의 보안 프레임워크이다. 스프링 시큐리티는 웹 애플리케이션의 인증과 인가를 처리하며, 개발자가 쉽게 보안 로직을 구현하고 확장할 수 있는 다양한 기능을 제공한다. 스프링 부트(Spring Boot)와 함께 사용하면 보안 구성을 더 간단하게 자동화할 수 있다. ▶ 스프링 시큐리티의 주요 개념스프링 시큐리티의 주요 개념은 다음과 ..
팀 프로젝트를 통해 협업을 하면서 다른 팀원분들과의 차이를 하루하루 체감하면서 다른 팀원이 작성한 필터클래스의 코드를 보고 내가 잘 다루지 못하는 부분이라 정리를 해야겠다고 마음먹었다. 사실 너무 잘하시는 분이 작성한 코드기도 하고 JWT관련부분이라 코드를 보면서 답답함과 꺼버리고싶은 마음이 더 컸지만..! 그래도 나도 필터클래스는 작성할 줄 알아야하니까.. 오늘은 필터에 대한 내용을 소재로 개발일지를 작성했다. 🥺필터(Filter) 클래스란?필터(Filter)는 클라이언트의 요청을 처리하기 전이나 응답을 클라이언트에게 전달하기 전에 실행되는 컴포넌트이다. 필터는 보통 서블릿(Servlet) 또는 스프링의 DispatcherServlet과 같은 프론트 컨트롤러 전에 실행되고, 웹 애플리케이션에서 요청 ..
결국 로그인기능구현은 해내지 못해서 다른 기능을 맡게되었다..! 해내지못해서 너무 아쉽긴하지만.. 어렵고 아직은 내가 레디스? 라는것도 알지못해서 그냥 할 수 있는 간단한 CRUD를 맡기로 했다. API를 설계하면서 개발일지 소재를 생각하다가 멘토링에서 들었던 로드밸런서에 대해 정리하기로 결정했다! 🤓로드밸런서(Load Balancer)란?로드밸런서(Load Balancer)는 여러 서버에 걸쳐 트래픽을 분산하여 웹 애플리케이션의 가용성과 성능을 향상시키는 역할을 하는 네트워크 장치 또는 소프트웨어이다. 로드밸런서는 클라이언트의 요청을 여러 서버(또는 인스턴스)로 분산하여, 서버의 부하를 줄이고 시스템의 안정성을 보장한다. ▶ 로드밸런서의 주요 역할로드밸런서의 역할은 크게 네 가지로 나눌 수 있다: →..
Spring을 들으면서 쿠키와 세션에 대한 강의를 들으면서 분명 들을 때는 너무 재밌었는데...! 이해도못하면서 그저 재밌어했던 것 같다. 유튜브에서 쿠키와 세션을 정리한 내용을 보다가 개발일지에 기록하면 좋겠다는 생각이 들어서 정리를하게됐다. 🤓쿠키와 세션 방식의 이해와 활용쿠키(Cookie)와 세션(Session) 방식은 웹 애플리케이션에서 사용자 식별과 상태 관리를 위해 가장 널리 사용되는 방법 중 하나이다. 웹은 본질적으로 무상태(stateless) 프로토콜인 HTTP를 기반으로 하기 때문에, 서버는 각 요청이 독립적이고 이전 요청과의 관계가 없는 상태로 처리된다. 그러나 대부분의 애플리케이션은 사용자의 상태나 데이터를 유지해야 하기 때문에, 이를 위해 쿠키와 세션 방식을 사용한다. 이번 개발일..
Bcrypt에 대한 공부를했다. 로그인 기능 구현하면서 안 되는게 많으니까 코드만 계속 뜯어보다가 어떤 기능을 하는지는 아는데 자세히는 모르는 부분에 대해서 개발일지를 써야겠다고 생각했기때문에 오늘 개발일지에서는 Bcrypt의 개념, 사용 이유, 구현 방법, 그리고 주의할 점을 설명하고 예시코드를 이용해 내용정리를 했다.🤓 Bcrypt란 ?로그인 기능을 구현할 때, 중요한 부분 중 하나는 사용자 비밀번호의 안전한 저장이다. 비밀번호를 평문으로 저장하면 데이터베이스가 탈취되었을 때 보안에 치명적인 문제가 발생할 수 있기떄문에, 이를 방지하기 위해 Bcrypt와 같은 암호화 해시 함수가 사용된다. Bcrypt는 비밀번호를 안전하게 해시화하는 데 널리 사용되는 알고리즘으로, 높은 보안성과 효율성을 제공한다...
기술매니저님께서 말씀하신 "JwtUtil 클래스는 순수해야 한다"는 말은 클래스가 특정 책임에 충실하고 외부 종속성이 없어야 함을 의미한다. 또한, POJO(Plain Old Java Object)의 개념을 이해하는 것이 이런 클래스를 설계할 때 중요하기 때문에 오늘 개발일지에서는 유틸리티 클래스의 순수성과 POJO의 의미를 정리하고, 조언에 따라 만든 예시코드로 이해를 위해 정리해봤다. 🤓POJO와 순수한 유틸리티 클래스의 의미Java 개발에서 POJO(Plain Old Java Object)와 순수한 유틸리티 클래스의 개념은 코드의 재사용성, 유지보수성, 테스트 용이성을 높이기 위해 매우 중요한 개념이다. 이 두 개념은 소프트웨어 설계의 기본 원칙 중 하나인 단일 책임 원칙(Single Respo..
JWT와 로그인... 구현하면서 GPT로 해결되지않는 문제에 너무 많은 시간을 소비했다. 리서치하고, 유튜브 강의 다시보고 예시자료 참고하고 여러 방법을 진행해봤지만 도저히 해결방법이 나오지않았고, 기술매니저님께 받은 조언으로 강의내용과 같은 버전으로 생각없이 바꿔서 진행이 되간다고 좋아하다가 다시 12.5로 돌아오면서 또 다시 같은 문제 시작...!🥺리프레시 토큰과 로그인 구현이번 개발일지에서는 JWT(JSON Web Token)를 사용한 로그인 구현에서 중요한 리프레시 토큰(Refresh Token)의 개념과 이를 통한 로그인 유지 및 보안 강화를 중심으로 정리해봤다. 팀 프로젝트에서 JWT와 로그인 기능을 처음으로 구현하며 겪은 문제점과 해결 방법에 대해 간략하게 정리하고, 팀장님이 작성한 코드와..
JPA(Java Persistence API)에서 트랜잭션은 데이터베이스와의 상호작용에서 매우 중요한 개념이다. 트랜잭션은 데이터베이스 작업의 성공 또는 실패를 보장하여 데이터의 일관성과 무결성을 유지하는 핵심 메커니즘이기때문에 오늘 개발일지에서는 JPA에서의 트랜잭션 관리 개념과 원리, 주요 기능, 사용 방법, 그리고 주의사항을 중심으로 정리해 보았다. ( 그저 다 성공하면 커밋! 하나라도 실패하면 롤백! 으로만 알고있어서 이번기회에 좋은 공부했다!) 🤓JPA의 트랜잭션(Transaction)이란?트랜잭션(Transaction)은 데이터베이스에서 작업의 논리적 단위로, 일련의 작업이 모두 성공하거나 모두 실패해야 하는 원자성을 보장하는 개념이다. 트랜잭션은 여러 데이터베이스 조작이 하나의 작업으로 수..