들어가며오늘은 프로젝트에서 로그 메시지에 대한 내용을 수정하기 위한 작업을 해볼 예정입니다. 로그 메세지를 왜 수정해야 할까요? 이미 스프링부트 환경에서는 자동으로 로그메세지도 제공해주고,Error 면 Error, Info 면 Info 알아서 나오지 않나요? 라는 생각을 할 수 있습니다. 하지만 로그도 하나의 코드라는 생각으로 스프링에서 제공해주는 일반적인 로그가 아닌내가 알아보기 편한, 즉 가독성(=읽기 편한) 로그를 만들어주는 것 또한 중요하다고 생각합니다. 실질적으로 서비스를 운영하면, 다양한 환경에서 Error 및 Info 로그를 체크해야 할 일이 많습니다. 그 로그들을 편리함,가독성, 팀원 과 공통적인 설정, 여러가지 보안적인 부분 프로젝트 스펙을 클라이언트와 맞추기 위해서 로그 스펙을 설정..
안녕하세요✋오늘은 JWT Token에 대해서 간단하게 알아보려고 합니다. JWT Token은 보통 로그인 로직을 짤 때 많이 활용하고는 합니다.Spring Security에서 JWT 를 사용하기 위해서 공부를 해보았고아래 내용을 보면서 기본 개념이랑 어떻게 활용하는지에 대해서 더 알아보겠습니다. 📌 기본 개념JWT(JSON Web Token) 은 웹 표준으로써 데이터의 JSON 객체를 사용하여 가볍고 자가 수용적인 방식으로 정보를 안전하게 전달할 수 있도록 전달할 수 있도록 설계된 토큰 기반의 인증 방식입니다. 토큰이라는 개념이 생소할 수도 있습니다. 일단 내용을 쭉 읽으시면서 자연스럽게 알 수 있습니다. JWT는 URL, HTTP Header, Cookie, HTML Form..
안녕하세요🖐 오늘은 제가 토이프로젝트 시작에 앞서, 어떻게 패키지를 구성하고, 파일을 관리할지 고민을 하던 중에 스프링 계층 구조에 대해서 알게되어서 공부하게 되었습니다. 그 내용을 포스팅 해보겠습니다. 저는 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 라는 책을 보며, 스프링 계층구조에 대하여 자세히 알게되었습니다. 위 사진이 대표적인 스프링의 계층 구조라고 합니다. 각각의 계층은 계층마다 독립적으로 분리하여 구현하는 것이 가능해야하고, 각 계층에서 담당해야 할 기능들이 있다. Web Layer(= Presentation Layer) 우리가 흔히 사용하는 Controller와 View 영역입니다. 스프링을 사용하면서 MVC패턴을 들어보셨을 것이라고 생각합니다. 그 중에서 View와 Controlle..
안녕하세요🖐 오늘은 스프링부트에서 의존성 주입에 대하여 알아볼 것 입니다. 스프링에서 중요한 개념인 Spring Core 관련된 내용은 꼭 알고서 개발을 시작해야 합니다. 대표적으로 POJO, AOP, DI 등 중요 개념들이 있습니다. 그 중에서 오늘은 DI에 대하여 알아보겠습니다. 의존성 주입은 스프링 을 사용하는 백엔드 개발자라고 하면은 개발시 자주 사용하고 있을 것 입니다. 저도 개발을 하면서 객체에 의존성 주입을 하는 상황이 자주 있습니다. 항상 궁금했습니다. 어떻게 이 방식으로 Bean에 의존성이 주입이 되고, 내가 원하는 객체에서 메소드를 사용하고 또 어떠한 방법들이 있을까? 그래서 이번 기회에 의존성주입(Dependency Injection) 에 대하여 자세하게 알아보았습니다. 모든 글은 W..
안녕하세요 오늘은 웹 백엔드 개발자라 하면은 꼭 알아야 웹 서버, 웹 어플리케이션 서버 개념에 대해서 알아보도록 하겠습니다. 일단 웹 브라우저 및 웹 환경에서는 클라이언트와 서버가 통신하기 위해 HTTP 라는 통신 프로토콜을 통해 데이터를 주고 받습니다. 🖐 여기서 그럼 HTTP 가 무엇인지를 궁금해 하실 수 있습니다. HTTP란? HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다 간단하게 이정도 의미라고만 알고 있으면 될 것 같습니다. 자세하게 HTTP에 대하여 공부하시고 싶으시면 https://www.cloudflare.com/ko-kr/learning/ddos/glossary/hypertext-transfer-protocol-http/ 요 링크에서..
안녕하세요🖐 오늘은 스프링부트 환경에서 스프링 시큐리티를 활용한 로그인&로그아웃을 구현해보겠습니다. 스프링 시큐리티는 내용이 정말 많은 것 같아요😂 그만큼 공부할 부분이 많고, 활용범위가 넓다는 뜻입니다. 그만큼 한번 잘 공부해두면 두고두고 잘 사용할 수 있습니다. 스프링 시큐리티는 방대한 프레임워크이다. 따라서 스프링 시큐리티가 내부적으로 어떻게 동작하는지 알기 위해서는 스프링 시큐리티에 대해서 자세히 공부해야 한다. (스프링 시큐리티는 책 1권 분량으로 나올만큼 방대한 프레임워크이다. 실제로 스프링 시큐리티에 대한 책은 많이 출판되었다.) 이 책은 스프링 시큐리티 자체에 대한 내용보다는 활용적인 측면에 대해서만 다룰 것이다. 하지만 개략적인 개념 설명을 추가했으니 이해에 도움이 되기를 바란다. 기능구..
오늘은 JPA를 활용하여 게시판을 페이징 해보도록 하겠습니다. 1) 서론1-1) 페이징을 하는 이유 여러분들은 페이징을 왜 해야하는가에 대해서 생각해본적이 있나요❓컴퓨터 공학을 전공한 분이라면 페이징이라고 하면 두가지를 떠올릴 수 있습니다. 1) 게시판 같은, 웹 페이지에서 페이지가 넘어가는 페이징2) 가상메모리 관리 기술인 페이징 두가지를 생각할 수 있습니다.여기서 제가 설명할 것은 1번인 웹 페이지에서 페이지를 이동시키는 페이징을 진행 해보도록 할 것 입니다. 📢 결과적으로 제가 페이징을 하면서 느꼈던 것을 바탕으로 페이징을 필요성 대해서 적어보겠습니다.1) 사용자 경험 향상페이징을 하지 않으면 모든 글들이 한번에 나열되게됩니다. 글이 200개 300개 라면은 사..
스프링부트가 무엇인지에 대한 글을 한번 적어보겠습니다. 1) 내가 생각하는 스프링부트 ❓ 스프링 프레임워크를 써본사람은 스프링의 명확한 단점을 알 거라고 생각합니다. 바로 기존 스프링은, 서버 설정 및 여러 세팅을 귀찮게 프로젝트 생성시 매번 개발자가 직접 해줘야 합니다ㅠㅠ 그러나 스프링부트는 , 스프링을 쓸 때하는 이런 세팅을 할 필요가 없죠 스프링부트는 우리가 개발하는데 있어 더 편한 환경을 제공합니다. 1️⃣ 톰캣 서버를 내장하고 있다. 기존 스프링은, WAS를 내장하고 있지않아, 우리가 직접 WAS인 아파치 톰캣을 설정을 해줘야 했습니다 그러나 스프링부트는 직접 내장하고 있어 우리가 따로 서버를 설정할 필요가 없습니다. 2️⃣ 기존 스프링보다 설정이 쉽다 3️⃣ 기본적인 보안에 좋다 4️⃣ 스프링..