일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- MappingJackson2HttpMessageConverter
- 유스콘
- 개발컨퍼런스
- js숫자체크
- MinorGC
- 테스트더블
- Java
- test double
- 멀티코어 프로그래밍
- spring boot
- mustache함수
- 테스트대역
- 동시요청
- @advice
- 자바디자인패턴
- 스프링부트 프로젝트 이름 변경
- 인텔리제이에서 프로젝트 이름 바꾸기
- 개발블로그
- GOF
- 헥사고날
- java병렬처리
- WebMvcConfigurer
- 어댑터패턴
- reflection api
- MajorGC
- WebMvcConfigurationSupport
- refelction API
- Spring
- 클린아키텍처
- java 멀티스레딩
- Today
- Total
목록전체 글 (23)
져니의 개발 정원 가꾸기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b8XBwO/btsGDC4hCz2/kh2yrOpz9d2Uzqk1lya3sk/img.jpg)
목차 배경 최근 특정 데이터 수집하는 배치를 개발할 기회가 있었다. 외부 연동사로부터 데이터를 얻어와 데이터 후처리 및 DB에 적재하는 배치작업이었고, 처리 대상 데이터들이 많을 경우 배치의 수행속도를 높이기 위해 어떻게 배치 로직을 가져갈 것인가를 고민했다. 특히 [후처리 ~ DB적재 부분]을 배치 프로젝트 내부에서 다룰 것인지 마이크로서비스 API 서버에서 기능을 제공하도록 개발할 것인지가 메인 고민이었는데, 두 프로젝트 중 하나는 Java7이고, 하나는 Java8+ 이어서 어느 서버에서 제공할 것인지에 따라 적용 가능한 병렬 프로그래밍이 달라졌다. 실제로 수집되는 데이터를 확인해보니 수행시간이 과도하게 길어질 정도로 데이터가 많지 않아서 순차처리하기로 결정했지만, 트래픽이나 데이터 양이 많아질 경우..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/NXn1N/btsGdq6eFxP/9dnWghIyiFWDxNm1006jP0/img.jpg)
목차 배경 개발하던 중 아직 remote에 올라가면 안 될 commit들이 담긴 브랜치를 모르고 머지한 뒤 pull request를 올렸다. 이미 remote에 올라간 commit 내역들만 빼고 싶을 때 rebase를 쓰면 아주 간단하게 (근데 좀 위험함) commit들을 삭제할 수 있는데 어떻게 하는지 간단하게 기록해본다. git rebase git rebase란? (re)base 는 베이스를 재설정한다는 뜻이다. 브랜치의 base라고 하면 코드를 수정하는 지점을 말하는데, 바로 이 지점을 재설정한다는 말이다. 브랜치를 병합할 때 쓰는 대표적인 git 명령어 두 가지가 merge, rebase인데, 둘의 차이는 다음과 같다. merge : 브랜치들의 히스토리를 개별적으로 보존하면서 히스트로리를 하나로 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rObXA/btsGMBlC8SO/teldl4x6mEuPYvXe4Rxj51/img.png)
목차 배경 현재 개발/운영하고 있는 프로젝트에서 특정 버튼을 클릭하면 다른 도메인 서비스의 팝업을 여는 부분이 있었다. 팝업 사용 후 바로 직전의 부모창으로 다시 데이터를 넘겨줄 때 window.opener라는 객체에 접근하여 부모창의 주소 데이터를 참고하도록 되어 있었는데, 이 때 팝업창에서 부모창의 데이터를 가져오지 못해 opener의 데이터들이 undefined혹은 빈 string 으로 되어 값을 넘겨주지 못하는 상황이 발생했다. 원인은 부모창과 팝업창이 다른 도메인 주소를 가지고 있어 window.open()을 하였을 때 CORS문제로 값을 넘겨주지 못했던 것이었다. 해당 CORS 문제는 경고나 익셉션이 뜨지 않고 실제 데이터를 사용할 때 팝업창에서 undefined exception이 났을뿐더러..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bp0l6S/btsEXscUf3q/txVUIPa8MSFzk5dOvkT3Uk/img.jpg)
목차 배경 Spring Boot 프레임워크로 개발된 운영 프로젝트 중에서 "사이트 페이지 전체에 대해 인증된 회원들만 접근할 수 있다"라는 요구사항을 가진 서비스가 있어, robots.txt를 통해 검색엔진이 사이트의 정보를 수집/크롤링하지 못하도록 robots.txt를 적용할 필요가 있었다. 많은 블로그에서 기본 정적리소스 폴더에 robots.txt만 추가해도 적용되어 [도메인 url 최상단]/robots.txt 경로로 접근 가능하다고 하지만, 사실상 spring boot 구성 설정이 어떻게 되어 있는가에 따라서 파일만 추가하는 것으로 적용되지 않는다. 이에 설정에 따라 robots.txt를 적용하는 방법에 대해 알아보고자 한다. Robots.txt robots.txt는 뭐하는 애일까? robots.t..