전체 글(355)
-
라이프 챌린지 프로젝트 시작 계기
살다보면 빠듯한 직장 생활 혹은 무기력한 생활 습관 때문에 삶이 무료해지고 아무것도 하기 싫을 때가 누구나 있을 것이라고 생각한다. 나도 직장 생활에 번아웃이 온적이 몇번있었고 주말에도 무기력해지는 자신의 모습을 보면서 뭔가 삶을 활기차게, 의욕적이게 만들어줄 수 있는 무언가가 필요했다. 그래서 이 프로젝트를 시작해보자고 생각했다. 라이프 챌린지 라이프 챌린지는 말 그대로 일상생활에서 도전을 하는 컨셉의 프로젝트이다. 내가 살고 있는 위치를 기반으로 도전 카테고리 / 도전 난이도에 따라 실제로 이행할 수 있는 도전 과제를 부여해주고 그것을 이루면 기프트를 부여하는 프로젝트이다. 뭔가 솔깃하거나 도전 욕구를 불러일으킬 만한 도전과제와 기프트가 있다면 실제 삶을 좀 더 활기차고 밝게 만들 수 있지 않을까 해..
2023.01.14 -
[Spring Boot] JWT (Json Web Token)
이전에는 Spring Security에 대해 정리해보았었다. Spring Security는 Spring 기반으로 인증, 인가와 같은 보안에 관련된 처리 작업을 자체적으로 지원해주는 보안 기능이다. Spring Security 만을 사용하게되면 정해진 Form 형식에서 로그인 기능들을 구현할 수 밖에 없었기 때문에 제약사항이 존재했다. 따라서, 좀 더 확장성있게 개발하기 위해 Spring Security를 사용하되, 정해진 형식이 아닌 api 접근을 위해 인증 토큰을 발급하여 구현할 수 있는 JWT를 사용하여 구현해보고 싶었다. 또한, JWT 가 최근 현업에서도 가장 많이 사용되는 방식인 것도 가장 큰 사용 이유 중 하나이다. JWT 인증, 인가에 필요한 정보들을 암호화시킨 JSON 토큰이다. JWT 토큰..
2023.01.13 -
[Spring Boot] Dispatcher Servlet
Dispatcher Servlet Dispatcher Servlet 은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러라고 볼 수 있다. 클라이언트로부터 요청이 들어오면 Tomcat 과 같은 Servlet 컨테이너가 요청을 받게 된다. 그리고 이 모든 요청을 Dispatcher Servlet이 가장 먼저 받게 된다. 그러면 Dispatcher Servlet은 공통적인 작업을 먼저 처리한 이후에 해당 요청을 처리해야 하는 컨트롤러를 찾아서 위임해준다. 여기서 프론트 컨트롤러라는 용어는 Servlet 컨테이너에서 제일 앞에서 서버로 들어오는 클라이언트의 요청들을 받아서 처리해주는 컨트롤러로서 MVC 패턴 구조에서 함께 사용되는 디자인 패턴이다. 즉, 문지..
2023.01.13 -
[Spring Boot] Spring Security
프로젝트를 진행하면서 구현한 로그인과 같은 보안과 직결된 기능들을 구현을 할 때 Spring Security와 jwt를 사용하여 구현을 했다. 아무래도 초보 개발자이기도 하고 직접적으로 모든 것을 구현하기에는 실력이 부족한 것이 사실이기 때문에 Spring 에서 제공해주는 기능을 활용해보기로 한 것이다. 하지만 Spring Security를 활용해서 구현을 하긴 했지만 처음 보는 내용들이 너무나 많기 때문에 두루뭉술하게 알거나 정확한 용도를 알지 못한 채 구현에만 초점을 두고 사용을 하여 정말로 이해하고 사용했는가 라고 물어본다면 당연히 아니라고 할 것 같다. 따라서 Spring Security에 대해 정리해보는 시간을 가져보도록 하자. jwt 에 대한 내용은 따로 정리하도록 해야겠다. Spring Se..
2023.01.12 -
[Java] 객체 / 클래스 / 인스턴스
객체 (Object) 객체라는 것은 물리적으로 존재하거나 추상적인 존재들 중에서 자신의 속성을 가지고 있으며, 식별할 수 있는 것을 말한다. 예를 들어, 사람이라는 객체는 이름, 나이, 성별 과 같은 속성과 먹다, 자다 등의 동작을 수행한다. 이러한 이름, 나이와 같은 속성을 필드라고 하고, 먹고 자는 동작은 메소드라고 표현한다. # 예 : 물리적 존재 - 자동차, 컴퓨터, 사람 / 추상적 존재 - 강의, 주문 클래스 (Class) 클래스는 Java에서 객체를 생성하기 위한 설계도이다. 객체가 가지는 속성(필드)과 동작(메소드), 생성자로 이루어져 있다. - 필드 : 객체의 속성으로서 실제 값이 저장되는 변수에 속한다. - 메소드 : 객체의 동작을 수행하는 블록 혹은 함수이다. - 생성자 : 객체가 실제..
2023.01.12 -
[Java] Stack / Heap
Stack - 객체 타입 참조값 / 원시 타입 데이터들 할당 Heap 영역에 생성된 객체 타입의 데이터들에 대한 참조 값, 원시 타입의 데이터들(byte, short, int, long, double, float, boolean, char) 들이 할당되어 저장된다. 원시 타입의 데이터들의 경우에는 참조값을 저장하는 것이 아니라 저장된 변수 실제 값을 저장하게 된다. # 예 : int = 5 , 5가 저장 - Stack 영역에 있는 변수들은 visibility 를 가진다. 전역변수가 아닌 지역변수가 특정 함수내에서 Stack 에 할당된 경우, 해당 지역변수는 다른 함수에서 접근할 수 없다. 예를 들어, One() 이라는 함수에서 Two() 함수를 호출하고 Two() 함수의 종료되는 중괄호 } 가 실행된 경..
2023.01.12