본문 바로가기

내일배움캠프

(57)
[TIL] 나의 서른 다섯번째 회고록 세번째 개인 프로젝트로 Spring Security를 사용하여 로그인을 구현하려고 한다. 그 전에 개인적으로 Session과 Token방식 이렇게 두가지만 사용해보았는데 확실히 Spring boot는 지원해주는 프레임워크가 다양하고 편하다는 생각이 들었다. 그러나 프레임워크가 제대로 동작하기 위해서 짝지어놓은 기능?들을 처음부터 제대로 알고 있지 않으면 매번 사용 할때마다 어떻게 해야하는지 찾아보면서 기능을 구현할 수 있을 것 같다(처음 접하기엔 복잡하다는 말) 이번에 Spring Security를 배우면서 Filter와 Remember Me방식도 함께 알게되었다. RemeberMe방식은 스프링 시큐리티에서 자동 로그인 기능을 쉽게 구현하는 서비스라고 생각하면 된다. 이번 프로젝트를 진행하면서 프론트단을..
[TIL] 나의 서른 네번째 회고록 오늘은 강민철 튜터님이 TIL을 왜 작성해야하는지에 대해서 강의해주셨다. 당일에 배운 내용을 스스로 정리하는 힘을 길러야 결국 정리한 내용이 진짜 내것이 된다는 것을 안다. TIL을 작성하면서 가장 중요하게 가져가야하는 마인드는 첫번째도 내 생각을 쓰기 두번째도 내 생각을 쓰기 세번째도 내 생각을 쓰기 지금 작성하던 TIL보다 앞으로는 내가 느꼈던 점을 세세하게 써야겠다는 생각이 들었다.
[TIL] 나의 서른 세번째 회고록 - 회원가입/로그인(인증/인가) - 게시판 생성, 수정, 삭제, 조회 - 댓글 생성, 수정, 삭제, 조회 지금까지 개인프로젝트를 구현시킨 기능들이다. 이번 프로젝트를 만들면서 인증/인가(jwt)와 DTO 중요성을 배웠다. 그 중에서도 결합도를 낮추기 위해서 직접 Entity에 접근하지 않기 위해 DTO만들어서 접근하였다. 그러나 Request할때 Response할때 모두 DTO파일을 따로 만들어주려고 하니 프로젝트에 파일이 효율적이기 못하게 늘어나는 것 같다는 생각이 들어서 어떻게 하면 각 기능마다 1개의 DTO로 Request와 Reponse를 사용할 수 있을까를 고민했다. 그렇다면 어떤 방법으로 DTO를 관리해야 할까? DTO를 Inner Static Class로 관리 DTO 패키지 내 클래스 파일들..
[TIL] 나의 서른 두번째 회고록 게시판 만들기 과제에서 지금은 댓글까지 기능을 추가해서 구현하고있다. 머리속에 객체 지향만 가득해서 그런지 어떤 범위까지 객체지향적으로 코드를 작성해야하는 건지 고민이 된다. 객체지향적이라는 것이 하나의 기능의 주체가 되는 요소라고 생각하면 쉬울 것 같았지만 기능의 주체가 되는 요소를 MVC패턴으로 어느 범위까지 허용이 되는 것인지가 감이 안잡히는 것 같다. 객체 지향 이외에도 코드 간의 결합도는 낮춰서 응집도는 높여서 코드를 작성해야 하기 때문에 정확하게 내가 지금 하고 있는 것이 맞는지 의문이 든다 그래도 코드를 쭉 작성해보고 스스로 어떤 점이 부족한지 TIL작성하면서라도 리뷰를 해봐야겠다.
[WIL] WIL 여섯번째 회고록 이번주는 게시판 과제를 JWT를 사용해서 회원가입/로그인 기능을 구현시키는 과제를 진행했다. 기존에 Session과 Cookie 개념만 알고있었는데 JWT는 처음 접해보는 거라 이해하는데 시간이 좀 걸렸다. 강사님의 코드를 보고 따라치는 것이 아니라 Zero에서부터 스스로 코드를 작성하기 위해서는 배웠던 기능들을 반복적으로 보면서 충분한 이해가 필요하다고 느꼈다. 이 모든 것을 수월하게 진행하기 위해서 강의 들은 것들을 잘 정리하고 복습하는 것만이 방법이라고 생각한다. 이번 게시판 과제를 구현하면서 내가 놓치는 부분이 있다는 것을 깨달았다. 저번에 메모장 과제를 구현하면서도 튜터님께서 '객체지향적'인 코드를 강조하셨는데 과제 제출한 내 코드를 보니 객체 지향적이지 않았구나를 깨달았다. 시간이 지날 수록 ..
[TIL] 나의 서른 한번째 회고록 보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. 예전에 배웠을 때는 쿠키, 세션 이렇게 두가지 개념만 기본으로 사용해보고 지나갔던 경험이 있다. 개인과제를 하면서 JWT를 처음 접해보았다. JWT?는 뭐지? 처음들어봐서 정확하게 JWT란 무엇일까? 궁금해졌다. JWT 란? JWT(JSON Web Token)란 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미한다. 그리고 JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식이다 JWT는 JSON 데이터를 Base64 URL-safe Encode 를 통해 인코딩하여 직렬화한 것이며, 토큰 내부에는 위변조 방지를 위해 개인키를 통한 전자서명도 ..
[TIL] 나의 서른번째 회고록 이번에 게시판 과제를 upgrade하고 있는데 이 과정 속에서 PostMan이라는 프로그램을 처음 접해봤다. 이 포스트맨을 처음에 사용할 때 어떻게 하는거지? 이리저리 눌러보고 만져보고 했는데 입문자인 나에게는 생각보다 프로그램을 다루기가 어려웠던 것 같다. 그래서 유튜브강의도 들어보고 다른 팀원들한테도 물어보면서 사용법을 익혔다. @ 참고 : https://chunggaeguri.tistory.com/entry/%ED%8F%AC%EC%8A%A4%ED%8A%B8%EB%A7%A8-POSTMAN-%EC%82%AC%EC%9A%A9%EB%B2%95 [POSTMAN] 포스트맨 (POSTMAN) 사용법 포스트맨(POSTMAN) REST API 설계 개발, 테스팅을 할 수 있는 GUI 툴로 개발 생산성을 높여주는 프..
[TIL] 나의 스물아홉번째 회고록 JPA심화 📚JPA란? JPA란(Java Persisitence API) 어플리케이션과 JDBC 사이에서 동작하는 API *JPA 개념에서 빠지지 않는'ORM (Object Relational Mapping)' 기술을 사용한다 ORM은 객체와 테이블을 매핑해주는 역할을 함. - 왜 JPA를 사용해야 하는지? 1) 생산성 : JPA를 자바 컬렉션에 객체를 저장하듯 JPA에게 저장할 객체를 전달. INSERT SQL을 작성하고 JDBC API 사용하는 지루하고 반복적인 일을 JPA가 대신 처리해준다. CREATE TABLE같은 DDL문 자동 생성 데이터베이스 설계 중심의 패러다임을 객체 설계 중심으로 역전 2) 유지보수 : 엔티티에 필드 추가시 등록, 수정, 조회 관련 코드 모두 변경 JPA를 사용하면 이런..