[개발] 기록(48)
-
스프링 테스트 코드 전환기 시작 (2/3): 테스트 코드를 어떤 방향으로 짤까
구글에서 말하는 테스트 책이 워낙 방대하니 책에서 말하는 테스트가 필요한 이유를 요약하겠습니다. 요점은 시스템이 확장하는데 테스트가 없다면 수정이 자유롭지 못하게 된다는 것입니다. 테스트 코드가 없다면 이 코드가 어디까지 영향을 줄지 예측할 수 없기 때문에, 개발자들은 코드 한번 수정하는데 소극적이게 됩니다. 그 결과 구글도 2000년대에 구글 웹서버를 확장하기 위해 수 많은 인력을 투입했으나 개발 속도에 진전이 없었다고합니다. 그리고 버그도 크게 줄어들지 않았다고 합니다. 개인적으로 올해 시스템이 커지면서 업무 상에 실수가 많았다고 생각하는데, 상황이 상황이었던지라 이런 대목을 읽으니 크게 공감하였습니다. 구글에서 정의한 테스트의 세 분류 구글에서 정의한 테스트는 크게 3가지로 분류할 수 있습니다. 소..
2021.10.10 -
스프링 테스트 코드 전환기 시작 (1/3): 테스트가 필요하다 느꼈다.
트로이 목마 트로이 목마에 당했습니다. 실제 데스크탑이 트로이 목마 바이러스에 걸렸다는 의미는 아닙니다. 테스트 문화를 전파하는 너무나 강력한 트로이 목마에 걸렸습니다. 올해 초의 일입니다. 회사에 후배님이 신규 입사하셨고, 저희 파트로 배정 받으셨습니다. 저는 후배님에게 현재 작업 중인 프로젝트에대해 설명을 드리며 개발할 내용을 나누었고 코드를 리뷰하고 있었습니다. 그러자 후배님께서 물으셨습니다. "저희는 테스트 코드가 없나요?" 네, 그렇습니다. 부끄럽게도 현재 개발 중인 프로젝트에는 테스트 코드가 거의 없습니다. 변명할 수 있는 이야기는 많지만 적지 않겠습니다. 말그대로 프로젝트 전반에 테스트 코드는 거의 없다고 봐도 무방비합니다. 처음 후배님이 이런 질문을 할 때 여러가지 이유를 들어 이렇게 된 ..
2021.10.10 -
테코톡 정리
유투브에서 재미있는 채널을 발견해서 정리합니다. Proxy Proxy 서버 대신 처리하는 서버, 클라이언트와 서버 사이에 있는 중계 서버, 캐시 / 보안 / 트래픽 분산의 이점이 있음 Forward proxy 일반적으로 말하는 proxy 클라이언트 - 포워드 프록시 - 인터넷 - 서버에 위치 캐싱에 이점이 있다. 서버에 포워드 프록시가 요청한 것 처럼 요청이 가기 때문에 익명성에 이점이 있다. ex. 프록시 서버를 설정한다. ex. 해커가 IP 추적 방지를 위해 프록시를 썼다. ex. 외국에서 접속하는 것 처럼 테스트하기 위해 프록시 서버를 써라 ex. 인터넷 서버 속도를 높이기 위해 프록시 서버 설정을 해줘라 Reverse proxy 클라이언트 - 인터넷 - 리버스 프록시 - 서버에 위치 포워드 프록시..
2020.10.13 -
사설 SSL 인증서 만들기
쿠버네티스 강의를 듣던도중 괜찮은 내용을 발견해서 기록합니다. [more] openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=www.https.com/O=www.https.com" 사설 인증서이기 때문에 아래와 같은 페이지가 나오게된다.
2020.03.11 -
카카오 페이 결제 흐름
참고 링크 전제 1) localhost:3000 은 web 서버다. 전제 2) localhost:8080 은 api 서버다. 전제 3) web 서버와 api 서버는 rest api 로 통신하고 있다. 정보 1) KakaoAK xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 에서 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx는 admin 키다. 1. web 에서 api 서버에 결제 준비 api 호출 https://localhost:8080/payment/ready 2. api 서버가 kakao pay 의 ready api 를 호출한다. curl -v -X POST 'https://kapi.kakao.com/v1/payment/ready' \ -H 'Authorization: Ka..
2020.02.22 -
스프링 기타 지식
@Qualifier @Bean 를 사용할 때 쓰는 @Qualifier 는 빈의 이름을 지정하는 동작이며, @Autowired 를 사용할 때 쓰는 @Qualifier 는 주입받으려는 객체의 타입이 애매모호할 때 특정 객체를 지정하는 동작이다. @Autowired 필수 여부 의존 주입을 반드시 받을 필요가 없는 경우 다음과 같은 3개의 선택지가 있다. 1. @Autowired(required=true) 2. @Autowired 객체 타입이 Optional 인경우 ex. Optional 3. setter 주입 매소드의 매개변수에 @Nullable 을 같이 명시할 경우 빈의 초기화 과정 1. 기본 생성자 호출 2. setter 호출 ... @Bean @Qualifier("yourComponentA") publi..
2020.02.15