본문 바로가기

내일배움캠프/Today I Learned

(47)
[TIL] 나의 서른 아홉번째 회고록 Today Error 팀 프로젝트 마무리 단계에서 로그인 체크, 권한 설정을 좀 더 편하게 할 수 있는 방법이 없을까?라는 의문이 들었다. 분명 Spring에서 제공하는 도구가 있을 것이야..! 그러던 중 같은 클래스의 동기가 @PreAuthorize 을 말하는 것을 얼핏! 듣게되었다. 어..?뭐지 저건? 싶어서 얼른 검색해서 알아보았다. 역시나 Spring Security에서 Annotation 형태로 Class, Method 레벨 단위로 권한별 접근제어 기능을 제공한다는 것!! 그의 예시로 @Secured, @PostAuthorize, @PreAuthorize 이렇게 세가지의 Annotation을 통해 계정 접근을 편하게 만들어준다고 한다. 해당 Annotation들의 자세한 내용은 아래에서 자세하게..
[TIL] 나의 서른 여덟번째 회고록 Today Error 게시글 작성하고 DB를 확인해보았더니 DB에 저장되는 id값이 1이 아닌 2부터 count 되는 것을 알았다. 음.? 왜그러지? Post.java(Entity)를 확인 해보니 Post의 id값을 GenerationType.Auto로 설정한 것..! IDENTITY랑 Auto랑은 무슨 차이가 있는거지? 싶어서 찾아봤다. GenerationType.Auto GenerationType.Auto는 SEQUENCE 전략으로 굳이 INSERT 쿼리가 DB에 나가지 않아도 id 값을 알 수 있으므로 AUTO 일 땐 INSERT 쿼리가 나가지 않음. GenerationType.IDENTITY 엔티티를 영속화할 때 id 값을 알아야 하므로 즉시 INSERT 쿼리가 발생 됨. 시퀀스 전략과 IDENT..
[TIL] 나의 서른 일곱번째 회고록 Today Error Git error : has no tracked branch 해당 오류를 해결하기 위해서 Choose upstream branch를 선택하고 branch를 master로 하니 오류가 해결 되었다. 이번 프로젝트를 하면서 깃의 흐름을 파악하는 것이 중요하다는 것을 깨달았다. 사실 Git bash를 통해 명령어를 사용하는 것이 익숙하지 않아서 생각지도 못한 error를 자주 만나게 된다. 협업을 위해서 사용하는 도구인 만큼 익숙해지도록 계속해서 사용해봐야겠다. 1일 1개념 ★ Git 기초 명령어 ★ 1. git remote add origin [git repository url 붙여넣기] Repository를 세팅한 프로젝트에 연결해서 다른 Local에서도 사용 할 수 있도록 해주는 명..
[TIL] 나의 서른 여섯번째 회고록 Today Error 1) 의도 : Spring Security 프레임워크를 사용하여 로그인 기능을 구현하였다. 2) 에러 발견 : maxRedirects url 포워딩이 너무 많이 된다는 말같다. 왼쪽의 사진과 같이 member테이블 select가 지속적으로 이루어지고 있는 것을 console로 확인. 무엇이 문제인지 알 수 없어 Class내에 자문을 구할 수 있는 팀원? 단원에게 물어보았고, 해결을 할 수 없어 튜터님께 직접 여쭤보았다. 3) 에러의 원인 : SecurityConfig.java파일에 formLongin().loginPage().permitAll() 해당 부분에서 error발생 시 error 포워딩 처리를 해주지 않아서 그런 것 같다고 말씀해주셨다. 말씀해주신 대로 failureUrl(..
[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작성하면서라도 리뷰를 해봐야겠다.