전체 글
-
JWT BestPractice카테고리 없음 2021. 12. 26. 18:42
JWT 토큰 사용의 모범사례를 따라서 JWT 토큰 사용 시 JWT 토큰 사용이 단점을 최소화 하는 걸 목표로 해보겠습니다. JWT 토큰의 구성 - 헤더(header) - 페이로드(payload) - 시그니쳐(signature) 1. 어떤 알고리즘을 사용해서 토큰을 생성할 것인가 - 대칭 알고리즘, 비대칭 알고리즘 - 대칭 알고리즘 HS256 - 비대칭 알고리즘 RS256, ES256 * HS란 HAMC-SHA - HS256 : 32비트 컴퓨터 - HS512 : 64비트 컴퓨터 -> 여기서 RS256이 가장 권장되는 알고리즘 입니다. 2. 항상 토큰에 서명하기 적적한 알고리즘을 선택했다면 토큰 발행 시 항상 서명하는 것입니다. JWT 서명은 토큰 내의 데이터(페이로드)가 변경되지 않았는지 확인하는 기본 보..
-
@Transactional 제대로 알고 쓰기Spring 2021. 11. 18. 02:23
@Transactional 을 꼭 붙여야 하나? 왜 붙여야 하지? 라는 의문들을 가지신 분들이 분명히 있을 겁니다! 그래서 오늘은 아주 간단한 Sample 코드를 통해서 @Transactional 을 붙였을 때와 붙이지 않았을 때 어떤 이들이 벌어지는지 확인해 볼께요! 그리고 DB 테이블이 데이터가 들어가는지 들어가지 않는지 뿐만 아니라, Spring이 트랜잭션을 어떤식으로 처리하는지 로그까지 확인해 보도록 하겠습니다. 로그는 org.springframework.jdbc 패키지 경로를 줘서 확인하면 됩니다. 참고로 mybatis를 사용했습니다. 테스트 내역은 아래와 같습니다. insert(insert 만 테스트 했지만, commit 관련해서는 update, delete 도 동일합니다.) @Transact..
-
primitive type vs wrapper classJAVA 2021. 10. 31. 00:49
Java 에서는 8가지 Primitive Data type 을 제공 합니다. 그리고 Primitive Type에 대한 Wrapper Class 를 제공하는데요. 여기에 대한 차이에 대해서 한번 알아봅시다! 그리고 어떤 경우에 primitive Type을 써야 하고 Wrapper Class 를 사용해야 하는지 알아봐요! 😀 Primitive Type과 Wrapper Class에 대한 Default Value 확인 (Sample Code) public class Main { byte primitiveTypeByte; short primitiveTypeShort; int primitiveTypeInt; long primitiveTypeLong; float primitiveTypeFloat; double pri..
-
수년 전 공부했던 TDD의 기억Etc 2021. 7. 14. 23:29
수년전에 공부했었던 TDD.. 다시 어딘가 찾아보지 않고 머릿속에 있는 기억만을 한번 꺼내보려 합니다. 머릿속에 있는 기억을 꺼내서 확실한 부분인지 검증하거나 수정하지 않고 그대로 한번 적어보겠습니다. 많은 오류가 있을 수 있으니 재미삼아 봐주시면 감사하겠습니다. 그리고 다음 게시글에서는 확실한 내용만을 정리해서 올려보겠습니다. Given When Then 템플릿이 먼저 생각 나네요. Given - 상황이 주어졌을 때 When - 어떤 무언가의 행동을 한다. Then - 그랬을 때의 예상 결과는 이렇다. Given 에는 input과 output의 기대값을 적었었고 When 은 실제 Feature 코드를 호출했고 결과 까지 받았습니다. Then에서는 When 에서 발생된 결과를 Matcher를 사용해서 검..
-
web.xml 에 선언된 context-param, init-param 테스트Spring 2021. 6. 30. 00:41
실제작성일 2018년 12월 13일 web.xml metawerx 사이트 를 참고 했습니다. context-param 태그는 전체 context/web application 에 parameter를 제공합니다. 실제 테스트를 해봤습니다. web.xml 코드 contextConfigLocation classpath:spring/application-config.xml spring Controller 에서 테스트 해봤습니다. @RequestMapping("/test") public String test(HttpServletRequest request) { String initParameter = request.getServletContext().getInitParameter("contextConfigLocat..
-
Visual Studio Code 에서 Git 사용법Etc 2021. 6. 25. 14:19
Given-When-Then Style로 작성 Given : 동작 시작 전 상태, 전제조건 When : 동작 Then : (예상)결과 Martin Fowler의 게시글 참고 Checkout Branch GIVEN, WHEN - master/origin 우클릭 후 Checkout Branch… WHEN - 생성될 브랜치명 작성 후 Checkout Branch THEN - 결과 Git Graph OUTPUT > git checkout -b topic origin/master GIT Delete Remote Branch GIVEN,WHEN - origin/HEAD 우클릭 후 Delete Remote Branch… WHEN - 원격 브랜치 origin/HEAD 를 삭제 하시겠습니까? Yes, delete T..
-
Builder PatternJAVA 2021. 6. 3. 14:42
간략히 설명해서 Builder Pattern을 쓰는 이유는 아래와 같은 코드가 있다고 가정하고 이야기 해보자. new User("junseok", null, null); new User("", "junseok", "email"); new User(null, null, "email"); 지금은 매개변수가 3개 뿐이지만 만약 10개가 넘는 생성자 호출이 있다고 하면 코드만 봐서는 어떤 필드에 값이 들어가는건지 알 수 없고 상당히 추한 모습의 코드가 만들어질 것이다. 위의 방법으로 추한 코드 모습을 만들고 싶지 않은 경우에는 모든 경우의 수를 충족하도록 매개변수를 받는 생성자를 추가해야 한다. 상당한 낭비. new User("junseok"); new User("junseok", "email"); new Us..
-
IETF와 RFCEtc 2021. 6. 2. 05:51
아래는 IETF(https://www.ietf.org/) 사이트의 내용을 구글 번역을 통해 가져온 내용입니다. 구글번역 후 수정한 부분이 없기 때문에 오역이 있을 수 있으므로 원본도 포함하였습니다. 참고하고 봐주시면 감사하겠습니다. IETF와 RFC가 무엇인가? The IETF is the premier Internet standards organization. It follows open and well-documented processes for setting these standards. IETF(Internet Engineering Task Force)는 개방형 프로세스르 통해 개방형 표준을 개발하는 최고의 인터넷 표준 기구입니다. RFCs cover many aspects of computer ..