본문 바로가기

내일배움캠프

(57)
[TIL] 나의 마흔 한번째 회고록 1일 1개념 이번주는 프로젝트를 하면서 정확하게 알고싶었던 개념들을 하나씩 살펴보려고 한다. 그 중에서도 오늘은 @Bean과 @Component 차이점과 사용방법에 대해 알아보려고 한다:D 스프링은 개발의 제어권이 스프링 컨테이너(IoC 컨테이너)에 있다고 한다. IoC(Inversion Of Control)는 제어의 역전이라고 불린다. 스프링이 개발자 대신 객체를 제어하기 위해서는 객체들이 빈(Bean)으로 등록되어 있어야 한다. 스프링 MVC에서는 @Controller, @Service, @Repository 등으로 빈으로 등록할 수 있으며, configuration관련 객체들은 @Bean과 @Component으로 스프링 컨테이너에 객체를 Bean으로 등록할 수 있다. 그렇다면,, Bean과 Comp..
[WIL] 나의 여덟 번째 회고록 작은 프로젝트를 끝낸 이후에는 항상 정리해야 할 것들이 쏟아져나온다. 너무 많은 것을 해야하면 가끔 갈피를 못잡을 때가 있는데 내배캠에서는 과제 제출 이후에 항상 생각해볼 수 있는 질문을 던져주어서 좋다. 던져주신 질문에 응답하면서 이번 주차 때 내가 정확하게 이해하고 있어야하는 부분을 다시한번 되새겨 볼 수 있었다. Why: 과제 제출 시에는 아래 질문을 고민해보고 답변을 함께 제출해주세요. Q. Spring Security를 적용했을 때 어떤 점이 도움이 되셨나요? A. 보안과 관련하여 체계적으로 옵션을 제공해주는 Spring Security 사용함으로서 회원과 관련된 인증/인가에 대한 처리를 비교적 편리하게 구현 할 수 있었습니다. Q. Spring Security를 사용하지 않는다면 어떻게 인증/..
[TIL] 나의 마흔 번째 회고록 Today Error 팀 프로젝트 마무리 단계 2탄 팀프로젝트 최종 Test단계에서 Security와 관련된 Error를 팀원이 공유해주었다. [ Error 내용 ] ▶ 회원가입 후 로그인 시 발행 되는 토큰이 '정상적인 토큰 형식'이 아닐 경우에 Exception처리가 되지 않고 아무런 Message를 띄워주지 않는다. 아~~^_^ (처음 에러 공유 받았을 때 표정) SecurityConfig.java 파일에서 Exception처리를 따로 해주면 되겠네~ 응..아니야ㅎㅎ @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.csrf().disable(); http.sessionManag..
[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(..
[WIL] WIL 일곱번째 회고록 이번주는 나를 달래는 시간을 많이 가졌다. 이전에 스파르타코딩클럽에 들어오기 전 다른 교육을 통해서 두번의 큰 프로젝트를 진행하면서 조금 지쳐있던 상태였던 것 같다. 직전에 교육을 받고 왔기 때문에 더 잘해야된다는 압박감을 주었던 건지 코딩을 즐기면서 하기보다는 시간에 쫓겨 하고 있다는 생각이 들때가 있어서 자주 지쳤다. 그래서 이번주는 힘들어하는 나 자신에게 주문을 걸었다. 교육과정에서 꼭 잘해야만 하는 것은 아니지 않을까..? 라는 생각을 했다. 해당 교육을 통해서 내가 진짜로 가져가는 몇개만 있어도 성공한 것이 아닐까? 다음주 부터 팀 프로젝트에 들어가는데 그 전에 여태 배운 개념정리만이라도 제대로 알고가야겠다는 다짐을 했다. 잘하면 너무 좋지만 그게 부담이 되기 때문에 나는 내가 맡은 역할이라도 ..