TIL(Today I Learned)
-
[TIL] AOP 에 대하여TIL(Today I Learned) 2022. 12. 28. 23:29
*20221228의 회고 인프런 스프링 입문 강의를 끝마쳤다. 뒤죽박죽이던 머릿속이 어느정도 정돈된 느낌이 든다. 갓영한... 그저 빛영한 이었다. 그 다음으로는 스프링부트와 JPA 활용편을 공부할 예정이다. 어서 빨리 JPA 라는 녀석에 대해 알고 싶다! 오늘은 스프링 입문 강의 마지막 부분의 내용인 AOP에 대해 간략하게 정리하려 한다. 1. 문제점 - 메소드 마다 호출시간을 측정하고 싶다. 그렇다면 모든 메소드에 일일이 호출 시간을 측정해주는 로직을 추가해야 할까...? - 만약 그렇다면, 메소드가 100개일 경우에는...? 혹시 1000개일 경우에는...?! 2. 해결 방법과 알게된 점 - AOP 를 적용하여 이 문제를 해결할 수 있다! AOP : Aspect Oriented Programming..
-
[TIL] JDBC, JDBCTemplate, JPATIL(Today I Learned) 2022. 12. 27. 21:05
*20221227의 회고 오늘은 스프링 입문 강의에서 DB와 연결하는 부분에 대하여 학습하였다. 그 과정에서 배운 내용에 대해 정리해보려 한다. Java 에서 Long 타입은 DB 에서 bigint 타입이다. Java 는 기본적으로 DB랑 연동되려면 jdbc 드라이버가 꼭 있어야 함. JDBC : Java DataBase Connectivity. 자바에서 DB에 접속할 수 있도록 하는 자바 API Test 코드 작성 시 @Transactional 을 Test 에 달면, Test 를 실행할 때 transactional을 먼저 실행하고, 그 다음 DB의 데이터를 insert query 하고 다 넣은 다음에 test 가 끝나면 롤백을 해줌 DB에 넣었던 데이터를 깔끔하게 반영되지 않게 하고 지워줌 테스트 시작..
-
[TIL] final 키워드와 @Autowired 에노테이션 정리TIL(Today I Learned) 2022. 12. 26. 23:52
*20221226의 회고 코드를 짜다 보니 final 접근 한정자를 쓰는 경우가 많은데, 어떤 경우에 final 키워드를 쓰는지 확실하게 정리하려 한다. final 접근 한정자 the final keyword is used in several contexts to define an entity that can only be assigned once -> final 키워드는 엔티티를 한 번만 할당! 클래스에 final 이 붙는 경우 -> 클래스의 상속을 제한 메서드에 final 이 붙는 경우 -> 메서드 오버라이딩을 제한 변수에 final 이 붙는 경우 -> 상수로 선언 (Read - Only) 또한 오늘은 @Autowired 어노테이션에 대해 알게 되었다. @Autowired 스프링 DI 에서 사용되는 ..
-
[TIL] Map을 List로 가져오기TIL(Today I Learned) 2022. 12. 23. 13:18
*20221223의 회고 스프링부트로 회원 도메인과 레포지토리를 만들던 중, Map에 저장한 값들을 List로 변환해서 반환해야 하는 일이 생겼다. 그 과정을 오늘 알게되어 이 부분을 정리해보려 한다. 1. 문제점 - MemberRepository 인터페이스에서는 findAll() 메서드의 반환값이 List형태이다. - MemberRepository 인터페이스를 구현한 구현체인 MemoryMemberRepository 에서는 회원의 id와 회원을 Map 에 저장하는 방식을 사용한다. 따라서 Map을 List로 바꿔서 반환해줘야 하는 과정 필요! 2. 시도한 방법과 해결 방법 - Map.values()를 이용해 Map에 있는 value들을 다 가져와서 ArrayList의 생성자로 넣어줘서 리스트를 생성한 ..
-
[TIL] 스프링 부트 자바 버전 변경으로 인한 오류TIL(Today I Learned) 2022. 12. 22. 22:42
*20221222의 회고 1.문제점 - 스프링 부트를 실행하는데, 갑자기 이런 에러메세지를 마주했다. 기존에는 잘 돌아갔는데, cmd 창에서 빌드를 시도하다가 내가 자바 버전을 변경했었다. 그러고 나서 다시 인텔리제이에서 실행하니 콘솔에 저렇게 오류 메세지가 찍혔다. 2. 시도해본것 - cmd 빌드를 실행 할 때, build.gradle 파일의 sourceCompatibility = '11'로 변경했던 것을 기존 프로젝트 셋팅 때 설정된 17로 바꿔줬다. 그래도 오류메세지가 떴다. 3. 해결방법 - Edit Configurations 에서 java의 버전을 기존 셋팅대로 변경해주었다. 11 -> 18 무사히 실행 성공! 4. 알게된 점 - 버전이 일치하지 않으면 빌드에 문제가 생긴다는 것을 알 수 있었다!
-
[TIL] 20221221의 회고...TIL(Today I Learned) 2022. 12. 21. 23:36
*20221221의 회고 도무지 공부가 잘 되지 않는다... 어렵다 많이 어렵고 어려우니 막힌다. 앞으로 나아가는 느낌이 들지 않는다. 그렇기에 공부가 신나지 않는다. 신나려고 하면 턱 막히는 기분... ㅠㅠㅠ 내일은 나아졌으면 좋겠다. 그냥 아무이유 없이 기분이 다운되는 날이 있다. 요즘 그런 것 같다. 이휴 시간이 약이다. 항상 이러면 시간이 지나면 나아진다. 내일은 집에 있지 말고 밖으로 나갈 것이다. 어디 가서 공부할까...! 그냥 카페?! 스터디 카페?!
-
[TIL] JWT에 대하여...TIL(Today I Learned) 2022. 12. 20. 22:14
*20221220의 회고 아니 벌써......20일이라니.....! 열흘정도 뒤면 2023년이라니... 갑자기 정신이 바짝 든다...정신차려라 나...!!!!!! 오늘은 JWT 인증에 대해서 기록해보려 한다. JWT(JSON Web Token) 유저를 인증하고 식별하기 위한 토큰 기반 인증 토큰은 세션과 달리 서버가 아닌 클라이언트에 저장됨 -> 서버의 부담을 덜 수 있음 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함된다. Header : JWT에서 사용할 타입과 해시 알고리즘의 종류가 담겨있음 Payload : 서버에서 첨부한 사용자 권한 정보와 데이터가 담겨 있음 Signature : Header, Payload를 Base64 URL - safe Encode 를 한 이후 Hea..
-
[TIL] 웹 어플리케이션의 인증TIL(Today I Learned) 2022. 12. 19. 22:44
*20221219의 회고 오늘은 웹 어플리케이션에서 인증을 어떻게 처리하는지에 대한 개념적인 부분을 공부하였다. 그 부분에 대해서 회고하려 한다. 인증과 인가 ? 인증(Authentication) : 해당 유저가 실제 유저인지 인증하는 개념 (ex) 지문인식, 로그인 등) 인가(Authorization) : 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념 (ex) 관리자 페이지 - 관리자 권한) 웹 애플리케이션의 인증 일반적으로 웹 애플리케이션은 서버-클라이언트 구조로 되어있음 -> 두 개는 아주 멀리 떨어져 있음 HTTP 프로토콜을 사용하여 통신하는데, 그 통신은 비연결성(Contectionless) 무상태(Stateless)로 이루어 진다. 비연결성(Contectionless) 서버와..