Spring

    JWT

    이번에 프로젝트를 회원 파트를 맡으면서 JWT, Redis, OAuth에 관해 알게 되었다. JWT 같은 경우는 회원과 관리자를 나누기 위한 방법을 찾아보다가 알게 되었다. 그 중에서 JWT 에 먼저 자세히 정리해보려고 한다. JWT(JSON Web Token) 웹 토큰 기반 인증 시스템에서 사용하는 대표적인 표준 방식 중 하나로, JSON 형태로 인코딩된 토큰으로 사용자가 로그인한 후 서버로부터 전달받아 인증정보를 클라이언트 측에서 전송하는 방식이다. 토큰은 크기가 작고 URL 안전으로 설계되어 있으며 특히 웹 브라우저 통합 인증(SSO) 컨텍스트에 유용하다. JWT 클레임은 아이덴티티 제공자와 서비스 제공자 간의 인가된 사용자의 아이덴티티를 전달하기 위해 보통 사용할 수 있다. JWT는 Base64 ..

    TDD 란?

    TDD , 즉 테스트 주도 개발(Test Driven Development)이다. 소프트웨어 개발 방법론 중의 하나로, 선 개발 후 테스트 방식이 아닌 선 테스트 후 개발 방식의 프로그래밍 방법을 말한다. 다시 말해 먼저 자동화된 테스트 코드를 작성한 후 테스트를 통과하기 위한 코드를 개발하는 방식의 개발 방식을 말한다. TDD에 대한 프로그래머들의 의견은 엇갈린다고 한다. TDD의 실효성을 업무로 경험한 사람들은 TDD를 더 효과적으로 실무에 적용 하기 위해 고민한다. 반면, 회사마다 일하는 방식이나 처한 업무 환경에 편차가 있다보니 일각에서는 실무에서 TDD를 사용하는 건 사실상 현실과 괴리감이 크다는 의견도 있다. TDD란? 테스트 주도 개발(TDD)은 소프트웨어를 개발하는 여러 방법론 중 하나이다..

    [Spring] ORM 과 JPA

    JPA는 자바 진영에서 ORM(Object-Realtion Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 그 말은 즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. JPA를 구현한 대표적인 오픈소스로 Hibernate가 있다. ORM(Object-Relation Mapping) 우리가 일반적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑한다는 뜻이며, 기술적으로는 애플리케이션의 객체를 RDB테이블에 자동으로 영속화해주는 것이라고 보면 된다. 장점 SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있음. Quer..

    [Spring] AOP란?

    OOP(Object Oriented Progamming) 객체지향 프로그래밍은 애플리케이션을 설계할 때 책임과 관심사에 따라 클래스를 분리한다. 클래스가 단일 책임을 가지도록 분리함으로써 각 모듈의 응집도는 높아지고 결합도는 낮아진다. 클래스를 변경하는 이유는 오직 한 가지이며, 애플리케이션의 한 부분에서 변경이 발생했을 때 그 파급효과가 시스템의 전체로 퍼져나가는 정도가 낮아진다. 이것이 OOP의 단점이다. 객체지향 프로그래밍은 실세계에 존재하고 인지하고 있는 객체(Object)를 소프트웨어의 세계에서 표현하기 위해 객체의 핵심적인 개념 또는 기능만을 추출하는 추상화(abstraction)를 통해 모델링하려는 프로그래밍 패러다임을 말한다. 다시 말해, 우리가 주변의 실세계에서 사물을 인지하는 방식을 프..