목록분류 전체보기 (198)
밤빵's 개발일지
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)은 데이터베이스에서 작업의 논리적 단위로, 일련의 작업이 모두 성공하거나 모두 실패해야 하는 원자성을 보장하는 개념이다. 트랜잭션은 여러 데이터베이스 조작이 하나의 작업으로 수..
영속성 컨텍스트(Persistence Context)는 JPA(Java Persistence API)에서 매우 중요한 개념으로, 데이터베이스와 애플리케이션 간의 데이터를 관리하는 역할을 한다. JPA를 이해하고 효과적으로 사용하기 위해서는 영속성 컨텍스트에 대한 이해가 필수인거같아서(스프링 강의에서 영속성컨텍스트 강의가 너무길고 집중이안되서 건너뛰었는데 후회중...ㅠ) 오늘 개발일지에서는 영속성 컨텍스트의 정의와 역할, 작동 방식, 장점, 그리고 주의사항 등을 정리해보았다. 🤓영속성 컨텍스트(Persistence Context)란?영속성 컨텍스트(Persistence Context)는 JPA(Java Persistence API)에서 엔티티(Entity) 객체를 저장하고 관리하는 메모리 상의 저장소이다..
로그인 기능을 구현하는데 강의에서 쓰던 11.5? 그 버전의 jwt가 아니여서 방식이 많이... 다른 느낌이다. 빨간줄이 엄청 많아지고, 오류파티하는 중이라 계속 잡고 해결하는중인데 아무것도 안되서, 블로그들을 뒤져보니 님버스라는게 있다...!! 이걸 써볼까 싶어서 알아보게되었는데..결론은 그냥 원래 하던방식에서 뭔가를 해보자!로 마음을 바꾸긴했지만, 이왕 알아본거 개발일지에 기록하기로 했다. 🤓Nimbus 라이브러리를 이용한 JWT 토큰 파싱과 검증이번 개발일지에서는 Java 애플리케이션에서 JWT(JSON Web Token)를 파싱하고 검증할 때 사용할 수 있는 두 가지 라이브러리, 기존의 JWT 라이브러리와 Nimbus 라이브러리를 비교해봤다. JWT 라이브러리(JJWT 12.5)로 구현하는 코드..
쓰리 레이어 아키텍처(Three-Layer Architecture)오늘 개발일지에서는 전통적인 소프트웨어 설계 패턴 중 하나인 쓰리 레이어 아키텍처(Three-Layer Architecture)에 대해 공부했다. 이 아키텍처는 응용 프로그램을 세 개의 주요 계층으로 나누어 설계하는 방법으로, 나에게도 조금은 익숙한 설계 패턴이다. 쓰리 레이어 아키텍처의 개념과 장점, 각 계층의 역할, 그리고 예시를 통해 어떻게 적용할 수 있는지에 대해 정리했다! ▶ 쓰리 레이어 아키텍처란?쓰리 레이어 아키텍처(Three-Layer Architecture)는 소프트웨어 애플리케이션을 프레젠테이션(Presentation) 계층, 비즈니스 로직(Business Logic) 계층, 그리고 데이터 액세스(Data Access) ..
Java에서 가장 널리 사용되는 ORM(Object-Relational Mapping) 프레임워크 중 하나인 Hibernate! Hibernate는 데이터베이스와 객체 지향 프로그래밍 간의 불일치를 해결해주는 강력한 도구로, Hibernate의 기본 개념과 장점, 동작 방식, 그리고 사용 시 주의할 점들을 정리해봤다.🤓Hibernate에 대한 이해와 활용▶Hibernate란 ? → Hibernate는 Java 기반의 ORM 프레임워크로, 데이터베이스의 테이블과 Java 객체 간의 매핑을 자동으로 처리해주는 도구이다. Hibernate는 SQL 쿼리를 직접 작성하지 않고도 데이터베이스와 상호작용할 수 있게 해주며, JPA(Java Persistence API)의 표준 구현체 중 하나이다. 이를 통해 개발..
▶ DI(Dependency Injection)와 IoC(Inversion of Control)에 대한 이해오늘 개발일지에서는 객체 지향 프로그래밍(OOP)에서 중요한 개념인 의존성 주입(Dependency Injection, DI)와 제어의 역전(Inversion of Control, IoC)에 대해 알아보고, 개발 과정에서 어떤 역할을 하고 어떻게 활용되는지에 대해 정리했다. DI와 IoC는 코드의 유연성과 재사용성을 높이고, 더 유지보수하기 쉬운 코드를 작성하는 데 매우 유용한 개념이다. ▶제어의 역전(Inversion of Control, IoC)이란?제어의 역전(Inversion of Control, IoC)은 소프트웨어 디자인 원칙으로, 프로그램의 제어 흐름을 직접 관리하는 것이 아니라 프레..