본문 바로가기

분류 전체보기

(887)
별모양 찍기 : mvp 와 리팩토링 질문 ******* ***** *** * 이렇게 출력해야되는데 for 중첩문을 이용해서 어떻게 하나요.. 일단 제일 궁금한게 공백과 \n을 나타내는 방법 입니다 for 중첩문 궁금합니다 ㅎㅎ 답변 프로그래밍을 하는 방법 중 한 가지는 가장 쉬운 방법으로 일단 동작하게 하고 개선을 하는 방법이 있습니다. 전자를 최소기능제품(Minimum Viable Product, MVP)라고 이야기를 하고, 후자를 리팩토링(Refactoring)이라고 부릅니다. 언어를 처음 배웠다면 Hello World 라는 문장을 출력을 해보았을 것입니다. #include int main(int argc, const char * argv[]) { printf("Hello, World!\n"); return 0; } 위의 코드는 Hel..
Spring MVC integration test 헤더 확인 테스트 아래와 같이 header에 대해 확인을 하는데 아래와 같이 헤더가 없다고 나온다. // when ResultActions result = mockMvc.perform( post("....") // .. // then result.andExpect(status().isCreated()) .andExpect(header().string("location", "https://namocom.tistory.com/10101")); 아래와 같이 ResponseEntity 를 통해 create(..)를 사용하면 location 헤더가 나와야한다. return ResponseEntity.created(uri).build(); 왜냐하면 내부가 아래와 같이 구현이 되어 있기 때문이다. public cla..
Mockito use case 이미 잘 정리가 되어 있어서 링크로 대신... Mocking Exception Throwing (Baeldung)
스프링 캐시 인터셉터 어노테이션 기반의 캐시를 종종 애용해주시는 우기님 덕분에 공부를 하게 되었다. 기회를 제공한 우기님께 감사를 드립니다. @Cacheable 어노테이션이 붙어 있는 메서드를 호출하게 되면 어떤 과정이 수행되어 캐시에 데이터가 저장되고 하는지가 궁금했다. 현상에 대한 디버깅을 통해 분석한 것이라 여러 방법 중에 하나일 수 있다. 디버깅을 하다보면 CacheInterceptor 클래스가 보이는데 아래와 같은 계층 구조로 되어 있다. 아래와 같은 MethodInterceptor 인터페이스를 구현하고 있기에 존재하는 메서드는 invoke 메서드 하나 뿐이다. @FunctionalInterface public interface MethodInterceptor extends Interceptor { Object in..
mac OS 업데이트를 못하는 이유 예전에 Apple 키노트에서 macOS가 Windows를 까는 영상을 본 적이 있다. (혹은 iOS가 Android 보다 낫다는 영상) 그 영상에서 본인의 운영체제가 더 뛰어나다는 것을 최신 운영체제 업데이트 비율로 나타냈다. 2021년 지금 나는 두 대의 mac을 가지고 있다. (실제로는 총 4대이지만 한대는 디스플레이용으로만 쓰고 있고, 한대는 전원케이블 조차 빠져 있는 잠자는 기기라 제외했다.) 2021년 3월 23일, 두 대의 mac 중 MacBook Pro (15-inch, 2018) 의 운영체제를 macOS 10.15 Catalina에서 11.2.3 Big Sur로 업데이트를 했다. 2020년 11월 12일 정식으로 릴리즈 되었으니 4개월만에 미루다 업데이트를 미루다가 한 것이다. 맥북에는 6..
iTerm 3.4.4 - 혹시 PIP 오류의 범인이? 설 연휴 전에 파이썬 패키지 설치시 어려움을 겼은 적이 있었다. home brew의 문제인줄 알고 파이썬을 다시 설치하고 버전 문제인가 이것저것 해서 해결을 하긴 했다. 3.4.4에서 파이선 런타임을 재설치에 대한 요청에 대해 사과를 한다는 것이 제일 첫 줄에 적힌 업데이트가 있었다. 업데이트 내용 3.4.4 Annoying things I'm sorry about - You'll be asked to re-install the Python runtime. This fixes a problem where pip3 would sometimes fail. Instead of creating a symlink of ~/Library/ApplicationSupport we will now use ~/.confi..
[AWS] 오래걸리는 작업 데이터 마이그레이션을 해야해서 작업용 API를 추가했다. 기본 타임아웃 시간인 60초를 초과하다보니 아래와 같은 에러가 응답된다. 504 Gateway Time-out 응답은 되지만 로그가 서버에 남기에 실제로 작업은 계속 수행되는 것으로 알 수 있었다. 504 Gateway Timeout error using Nginx as Proxy 같은 키워드로 검색해보면 대부분 proxy_read_timeout 값을 변경하라고 가이드 한다. 하지만 변경을 했지만 여전히 60초 타임아웃이 발생했다. 심지어 http client로 사용했던 curl의 문제인가 싶어서 --max-time 500 옵션을 붙여주었지만 마찬가이였다. 과거를 찾아보다. 전에 타임아웃을 설정할 때 히스토리를 찾아보니 원인을 알 것 같다. AWS..
병무청 블록체인? 병력동원소집 통지서가 등기로 왔다. 안내문에는 정보환경의 변화에 맞추어 간편하게 이메일, 모바일로 '병력동원소집 통지서'를 송부하고 있다며 독려 안내문이 있었다. 일단 신청방법의 주소 병무민원포털(mwpt.mma.go.kr) > 동원/예비군을 클릭했다. 본인인증 서비스 휴대폰으로 본인인증을 하나 했더니 병무청 간편인증 앱으로 인증한다고 한다. 간편인증하기를 눌렀더니 '블록체인'이라는 전혀 어울리지 않는 용어가 나온다. 블록체인을 인증의 역할로 쓸 수 있기는 하지만 뭔가 시대의 키워드에 부흥해서 도입한 것 같은 느낌이 든다. 앱에서도 하나같이 '블록체인'이라는 용어를 사용하고 있다. 인증 방법? 인증하는 페이지에 QR코드가 생기고 앱으로 인식해서 인증을 하는 시스템이다. 무슨 블록체인이라는 거창하게 이름을..