도커 설치하기 https://www.docker.com/get-started/ Developers - Docker Developer productivity tools and a local Kubernetes environment. www.docker.com 레디스 이미지 다운로드 도커에서 레디스의 이미지를 내려 받습니다. docker pull redis 레디스 실행 docker run --name some-redis -d -p 6379:6379 redis -p : 포트 설정 (도커 외부 포트 : 도커 내부 포트) -d : 백그라운드 실행 레디스 실행 확인 docker ps -a

전체 글
좋은 영향력을 전파하기 위해 노력하는 엔지니어 리오입니다.
많은 기업에서 TDD, ATDD 등 테스트 주도 개발이라는 도입을 하고 테스트 커버리지를 높이는데 많은 돈과 인력을 투자를 하고 있었습니다. 심지어 개발자를 뽑는데도 필수 역량으로 표시되어 있는 경우도 있었습니다. 하지만 주니어 개발자인 저에게 테스트 주도 개발이 왜 필요하고 어떻게 해야되는지에 와닿지 않았었습니다. 그래서 테스트 주도 개발 책중 가장 유명한 켄트백의 테스트 주도 개발 책을 읽게 되었고 게으른 저에게는 분명 책만 사두면 다 읽지 않을 것이라는 것을 알고 있기 때문에 책 스터디를 통해 강제성을 가지고 시간이 오래걸리긴 했지만.. 다 읽고 이렇게 후기를 남길 수 있게 되었습니다. 일단 이책은 TDD에 대한 이론에 가까운 책이기 때문에 실무에 바로 적용해보고 사용할 수 있는 책은 아닙니다.....

빨간 막대 패턴 한단계 테스트 우리들인 테스트를 할 때 어떠한 방법으로 하는지 API를 개발할 때 컨트롤러부터 테스트할 때 도 있고 DAO나 Repository 먼저 테스트하는 경우도 있습니다. 켄트백은 이러한 상향식 프로그래밍 하향식 프로그래밍은 TDD 프로세스에 대해 효과적으로 설명할 수 없다고 말을 합니다. 이와 같은 수직적 메타포는 시간에 따른 단순한 변화일 뿐이라고;; 메타포: 본래 표현되어야 할 내용을 간접적으로 명시하는 것이다. 예시: 인생은 여행이다. 켄트백은 TDD에 대해 성장이라는 키워드에 초점을 맞췄다. 우리는 TDD를 처음 접할 때는 더닝 크루거 효과처럼 TDD에 아주 얕은 부분만 알고 알고있는 테스트만 작성을 합니다. 그렇게 알고 있는 테스트만 작성하게 된다면 우리는 해당 테스트가..

켄트백의 테스트 주도 개발책을 읽으면서 "어떻게 테스트 할 것 인가?" 에 대해 아래와 같이 먼저 생각해보고 가장 기본적인 전략에 관한 질문에 답해야 한다고 말합니다. - 테스트 한다는 것은 무엇을 뜻하는가? - 테스트는 언제 해야 하는가? - 테스트할 로직을 어떻게 고를 것인가? - 테스트할 데이터는 어떻게 고를 것인가? 첫번째 질문을 답하는데 테스트 코드와 관련해서 여러 세미나 영상이나 개발 커뮤니티를 찾아보면서 생각했던 건 테스트는 켄트백이 말했던 것 처럼 위험한 리스크를 지루함으로 바꿔주는 것이라고 생각한다. 왜냐하면 테스트를 반복 할 수록 스트레스 받는 정도가 많아지고 더 많은 시간을 투자하면서 점점 지루해지지만 사전에 일어날 수 있는 오류를 발견하고 에러를 줄일 수 있어서 리스크를 줄일 수 있..

켄백의 테스트 주도 개발에 대한 1부를 읽고 작성한 회고록 입니다. 테스트 코드가 필요한 이유? 현재 스타트업을 근무하면서 기업 특성상 짧은 시간안에 빠르게 아웃풋을 내고 유저들의 반응을 살피고 안정성은 나중에 생각하다보니 주니어인 제가 봐도 부족한 부분이 많이 존재하고 실제로 테스트 코드 없이 개발을 진행하고 빨리 빨리 기능을 구현을 하다보니 QA과정에서나 배포가 되고 난 뒤 문제점을 발견하게 되고 한부분을 고치게 되면 다른 곳에서 버그가 터지는 버그의 연속이 생기게 되었습니다. 이러한 문제점을 사전에 발견하고 테스트 코드를 작성한 뒤 중복코드를 제거하고 리팩토링을 하는 과정에서 좀 더 클린한 코드, 아키텍처와 안정된 서비스를 운영할 수 있도록 하기 위해서는 필수 불가결하다고 생각합니다. 1부 예제를 ..

JWT Authentication Flow HTTP는 connectionless, stateless한 성질을 가지고 있는 프로토콜 입니다. 그렇기에 유저 인증이 필요한 경우 인증이 필요할 때 마다 로그인을 할 수 없으므로 토큰이나 세션을 통해 유저 인증 상태를 관리하게 되는데 그중 가장 널리 사용되는 JWT 토큰 전략을 스프링 시큐리티 활용하여 사용방법과 동작과정을 정리한 글입니다. 1. 유저 정보를 자바에서 Validation을 활용하여 유저 정보를 체크하고 H2 데이터 베이스에 저장을 합니다. 2. 스프링 시큐리티를 통해 유저 로그인 정보를 인증하고 토큰을 발급 받습니다. 3. 스프링 시큐리티를 통해 전달 받은 토큰을 통해 인가 과정을 거친 후 서비스 로직을 동작하도록 합니다. 스프링 시큐리티가 있는..