DEV
-
나에게 필요한 클린 코드DEV 2022. 3. 9. 22:57
서론 클린 코드를 읽어봐야지 생각만 하다가 시간이 생긴 김에 처음으로 일독한 후 많은 내용을 모두 다 기억하고 적용하면 좋겠지만 지금 내가 코드를 작성할 때 중점을 두고 고민해볼 내용을 정리해보았다. 이름 정하기 지금도 클래스, 메소드, 변수 등의 이름을 지을 때 조금 길어지더라고 한눈에 보고 확인할 수 있는 이름을 정하려고 노력하고 있지만 서로 너무 비슷하거나 혼동되는 이름을 정하지 않도록 좀 더 고려해야 할 것 같다. 이름을 잘 정하고 싶은데 막상 이름이 잘 생각나지 않는 난제는 참 어렵다.. 함수에 대하여 함수는 하나의 일만! 하나의 함수에서 많은 일을 하게 되면 작성할 때는 잘 알지만 조금만 시간이 흐른 뒤에 보게 된다면 도대체 뭘 하고 싶은 건지 모르게 된다. 따라서 함수는 하나의 일만 해야 하..
-
ZooKeeper 와 Spring Cloud ZooKeeperDEV 2021. 9. 16. 22:53
회사에서 사용하는 기술 중 ZooKeeper 가 무엇인지 궁금하여 공부하면서 정리했습니다. 부족한 부분은 댓글로 남겨주세요. ZooKeeper 란? ZooKeeper는 분산 애플리케이션을 위한 분산 오픈 소스 조정 서비스입니다. 주키퍼는 파일 시스템과 비슷한 namespace 를 제공합니다. 파일 시스템처럼 / 부터 시작하며 주키퍼의 네임스페이스에 있는 모든 노드는 경로로 식별됩니다. 실행 docker compose 를 이용하여 zookeeper 를 실행합니다 version: '3.1' services: zoo1: image: zookeeper restart: always ports: - "2181:2181" 실행이 완료되면 docker exec -it {CONTAINER ID} bin/z..
-
heroku 에 spring boot 프로젝트 배포시 발생한 문제들 해결 방법DEV 2021. 8. 16. 18:55
heroku 에 spring boot 프로젝트를 배포하면서 발생한 문제들과 찾은 해결 방법을 공유합니다. heroku 빌드시 서브폴더를 경로로 사용해야 하는 경우 → https://github.com/timanovsky/subdir-heroku-buildpack 위의 링크의 빌드팩을 이용하여 서브 폴더를 경로로 지정합니다. heroku 에 배포해서 접속했는데 503 에러 (No web processes running) 가 뜬다면 Procfile 이 추가, 설정되었는지 확인합니다. https://devcenter.heroku.com/articles/procfile 빌드시 java 를 찾을 수 없는 경우 → java 빌드팩 또는 gradle 빌드팩을 추가합니다. heroku 자바 버전 설정 → https:/..
-
docker-compose : default network subnet 설정DEV 2021. 7. 21. 09:52
내부망에서 서비스를 올리고 사용하다가 자리를 이동하게 되어 ip 가 변경되었고 사용하던 서비스가 접속이 안되는 현상이 발견되었다. 원인을 찾아보니 도커가 생성한 네트워크가 새로운 ip 와 겹치게 되어 충돌이 일어나는 상황이었다. docker-compose 를 다시 실행해보니 ERROR: pool overlaps with other one on this address space 라는 에러를 출력하였고 docker-compose 가 기본으로 생성하는 네트워크를 변경하기로 했다. compose file 3버전을 기준으로 아래와 같이 설정하면 기본 네트워크의 서브넷을 설정할 수 있다. services: ... networks: default: driver: bridge ipam: driver: default c..
-
MSSQL(SQL Server) - IN 구문 사용시 매개변수 최대 값 에러DEV 2021. 7. 5. 17:28
평소에 mariadb 를 사용하다 mssql 을 사용해야해서 디비 접속 후 잘 되던 동작도 실행을 시켰다. 그런데 매개변수 수가 너무 많다는 에러가 출력되었다. Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request. 좀 찾아보니 mssql 의 IN 구문의 매개변수 수가 2100 개가 최대값이었기 때문에 발생한 에러였다. id list 를 받아서 삭제하는 부분이었는 데 평소 테스트할 때 ..
-
iterm2 단축키 정리DEV 2021. 6. 29. 21:41
iterm2 에서 커서를 옮기거나 글자, 단어를 삭제하는 단축키를 이미지로 정리했습니다. Ctrl-B | 좌측으로 커서를 한칸 이동 Ctrl-F | 우측으로 커서를 한칸 이동 Ctrl-A | 맨 앞으로 커서 이동 Ctrl-E | 맨 끝으로 커서 이동 ESC B | 한단어 기준으로 좌측으로 커서 이동 ESC F | 한단어 기준으로 우측으로 커서 이동 ESC T | 현재 커서의 문자와 좌측의 문자와 위치를 변경 Ctrl-D | 현재 커서의 우측 문자 삭제 Ctrl-K | 현재 커서 위치부터 맨 끝까지 삭제 Ctrl-U | 전체 삭제 Ctrl-W | 현재 커서의 좌측 단어 삭제 ESC D | 현재 커서의 우측 단어 삭제 ESC 와 조합하는 단축키는 매번 ESC 를 같이 눌러줘야 합니다. 그런데 매번 그렇게 사..
-
ansible - ubuntu 20.04 에 python2, pip 설치하기DEV 2021. 6. 11. 16:52
- name: add apt-repository universe become: true shell: add-apt-repository universe - name: update apt become: true shell: apt update - name: install python2 become: true shell: apt install python2 - name: download pip shell: curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py - name: install pip2 become: true shell: python2 get-pip.py
-
git - pull/fetch, merge/rebase, reset/revert 개념 정리DEV 2021. 5. 27. 17:19
pull / fetch pull 원격 저장소의 변경 사항을 현재 브랜치에 통합시킵니다 git fetch 후 git merge FETCH_HEAD 를 한 것과 동일합니다. https://git-scm.com/docs/git-pull fetch 원격 저장소에서 객체 및 참조(커밋, 태그)를 다운로드 하고 로컬 저장소에 병합되지는 않습니다. fetch 를 하게 되면 .git/FETCH_HEAD 에 fetch 로 다운받은 내용이 기록됩니다. https://git-scm.com/docs/git-fetch merge / rebase merge 두개의 브랜치를 병합합니다. A---B---C topic / D---E---F---G master ----------- merge ------------ A---B---C t..