Wiki
공부하며 쌓아가는 조각 지식들
상황 Test를 mockito로 작성하던 도중, repository의 save을 모킹해줄 일이 생겼다. 테스트하려는 메소드의 로직이 respository의 행동을 포함하고 있었기때문인데, 실제로 repository가 들고 있거나 DB에 저장되지 않아도 save 한 것 처럼 넣은 객체를 그대로 받고 싶었다. 일반적인 when - return 으로는 해결되지
TestMockito서두 매번 회고때마다 급하게 읽은 책들을 찾아보며 한줌 남아있는 교양을 빛내는 것이 어이없다는 생각이 들었다. 위키를 만들기로 한 뒤 하고 싶었던 것 중 하나가 johngrib 님 처럼 독서를 기록하는 것이었다. 그래서 여기다 적어본다. 조금 늦었지만, 3월에. 출근길의 주문 너무너무 재밌게 읽었던 책이다. 내용 하나하나가 주옥같고, 내내 트위터에 글귀를
BooksLinux shell scripting Shell 이란 사용자와 OS간의 징검다리 Shell script - 빠르고 간단한 프로토타입으로서의 역할 - 반복되는 일련의 커맨드나 유틸리티 실행 작업을 한번에 묶어서 처리한다 - 스크립트 첫줄의 는 스크립트를 해석할 프로그램을 지정 shell 종류 - bash : 리눅스 기본 shell. 전통 shell인 sh와
LinuxCLINetwork기본 명령어 - apply: 적용합니다. bash kubectl apply -f <파일명 혹은 url - get: 리소스를 확인합니다. bash kubectl get pod kubectl get pods kubectl get po 쉼표로 여러 타입도 확인 가능 kubectl get po,svc 중간에 띄어쓰기는 오류가 남 kubectl get all 대표적
DevOps제어의 역전 Spring 을 처음에 배울 때 마주하는 개념이 IoC 혹은 DI이다. 컴퓨터 용어는 전반적으로, 아는 사람이 보면 기가 막힌 용어지만 한눈에 알아보기는 어렵게 만들어진 것 같다. 이 역시 대표적인 사례이다. johngrib님의 블로그를 복습차원에서 보다가 다시 이 개념을 마주했다. IoC를 가장 잘 설명한 것 토비의 스프링 3.1 의 구절이다
TermSpringwebpack - 파일들을 일일히 불러와서 html 로 가져오는게 아니라 한번에 할 수 있게 해주는 도구. - 이 작업이 번들링 - e.g) 이 과정에서 이미지 압축하고 특정 경로에 넣기. - e.g. 2) 자바스크립트 여러개 만들면 기본적으로 하나의 파일로 만들어줌. - 분리도 가능함. - webpack과 babel이 뭐요 를 다시 써볼 수 있는 부분 b
1월의 책 사랑의 기술 - 에리히 프롬 '사랑한다' 라는 것은 쉬운 일이고 사랑할 또는 사랑받을 올바른 대상을 발견하기가 어려울 뿐이라고 사람들은 생각한다. 이런책인줄 알았지만 또 새롭게 읽었다. 관념적이고 또 이론적인 내용들을 내리 훑어내는게 크게 좋은 경험은 아니었으나 몇가지를 이해한 것만으로도 유의미했다고 생각한다. 사랑의 능력은 긴장, 각성, 고양된
오늘 또 일을 미루고 말았다 마이크로소프트 출신의 개발자의 시간관리법. 아무래도 개발자인 만큼 프로젝트를 대상으로 많이 들어서 유용한 면이 있었다. 여러 시간관리법의 다양한 양상을 받아들이는 방법으로 사용하는 중. 모든 사람들이 언제나 "조금 더 있었으면 좋았을 텐데"라고 이야기하는 여분의 자원을 심리학에서는 '슬랙스slacks'라고 부른다. 자기보다 재능
bash brew install nginx /opt/homebrew/bin 에 nginx 바이너리 설치됨 conf는 /opt/homebrew/etc/nginx 하위에 있다. bash brew services start nginx nginx 시작 후 bash ps -ef | grep nginx nginx 가 코빼기도 안보임 bash brew services
DevOps서론 성능테스트를 계속하고 있다. 부하를 많이 주긴 했지만, 매우 빠른 시간 내에 full GC 가 일어나는게 요상스럽다, 싶어서 heap dump 를 떠봐야겠다는 결심을 했다. heap dump를 알기 전에 jvm의 구조와 heap 메모리 영역에 대해서 알면 좋으니 해당 링크는 여기 로. 절차 절차는 다음과 같다. - java process 를 확인한다.
JVM세미콜론에 대해서 자바스크립트 엔진은 세미콜론으로 문이 종료한 위치를 파악하고 순차적으로 하나씩 문를 실행한다. 이는 옵션이다. 즉, 생략가능하다. 이는 자바스크립트 엔진이 소스 코드를 해석할 때 statement 의 끝이라고 예측되는 지점에 자동으로 붙여주는 ASI이 암묵적으로 수행되기 때문이다 하지만 ASI의 예측과 개발자의 예측이 일치하지 않는 경우가
1) 사랑한다고 말할 용기 몇 년 전 한해 최고의 책으로 꼽았던 <여자 둘이 살고 있습니다> 의 저자 중 황선우 작가의 책. 2021년 12월에 나와 아주 연말에 야금야금 읽었는데 오늘 비로소 다 읽었다. 일하는 여성, 그냥 여성이라면 모두 일독을 권한다. 차별에 익숙해지지 않으려고 노력한지도 몇 년 되었는데, 부드럽게 머리를 톡 때리는 구절들이
Booksjunit에 spring support 작성할 때 junit 4 java @RunWith @Runwith 위와 같지만 개선된 버전? junit 5 java @ExtendWith junit5에서는 ExtendWith를 지원한다. 그런데 SpringExtension을 사용하려면 Spring Framework의 spring-test를 써야하고 , 만약 이를 지원
it 태그 int eract 의 줄임말인듯. 가상의 tty 항목은 리눅스 디바이스 드라이브중에서 콘솔이나 터미널) 를 제공. docker 의 WORKDIR 에서 돌아간다. 그러니 WORKDIR 를 설정할 때 요런 것도 생각할 수 있겠지. examine bash docker examine <container id 컨테이너의 메타데이터 볼 수 있음. bash
DevOps인텔리제이 사용하며 마주한 문제들을 정리합니다. Tool Windows Bars 가 이상하게 생겼어요. 아래와 같이 하단에 잘 나오던 tool windows bars original 갑자기 아이콘만 크게 보이거나, 사라진다면 material-applied 아래 옵션이 켜져있을 확률이 있다. tab 두번을 눌러 아래 액션을 검색하고, 스위치를 종료하자. ./
Javacharles 는 한번도 써보지 않았고, 받아서 쓰는 것도 귀찮아서 다시 mitmproxy 를 깔았다. 아웃사이더님의 블로그가 아주 충분했는데 오늘 다시 들어가보니 이미지가 깨지는게 몇개 있어 🥲 직접 이미지를 첨부해보기로 ㅎㅎ 설치 & 설정 macOS 에서의 설정 bash brew install mitmproxy 실행 bash mitmproxy 아이폰
Java서론 서비스 모니터링 하다가, 일부 특수문자가 제대로 표현되지 않는 영역이 있는걸 발견했다. html 특수문자 형태 그대로 나온 것인데, 예를 들어, < 가 < 와 같은 형태로 그대로 나왔다. 특수문자는 html 상에서 위와 같은 형태로 표현될 때가 있다. 자주 쓰는 것 중 하나인 공백 도 이런 방식으로 표현되고. 이 리스트는 여기 를 참고하면 알 수
JavaSecurity서론 roadmap 을 보면서, 내가 아는 것도 어렴풋이 알고 있고 모르는 건 아주 화끈하게 모른다는 점을 알게 되었다. 머릿속에 정리가 안되는 찜찜한 상태로 있기 보다는, 일단 위키를 만들어서 써내려가기로 했다. 최대한 2-3줄 안에 정리하는게 목적인데 잘 될지는 😮 상세한 설명을 한 나의 블로그 글이 있으면 첨부한다. CS 기본 지식 관련 질문 OSI
JavaServerCS서론 언제나 처럼 뭔데요 시리즈. 새로운 팀에서는 varnish 를 통해서 페이지를 캐싱해 성능 개선을 노리는 부분이 있다. 그러나 varnish 자체가 뭔지 모르는 나... 그냥 광내는 건 줄 알았다고. 그래서 오늘은 varnish 를 간략하게 살펴본다. varnish... 너 뭐 돼? varnish를 구글에 검색해보면 가장 먼저 varnish cache
Server접속국가의 IP 를 기반으로 서로 다른 스펙이 생겼다. 이때는, 안타깝게도 해외의 IP 로 접속해서 테 스트해줄 일이 생긴다. 자주있는 일은 아니기때문에.. 해외의 공인된 VPN 은 없는 상황. 사내에서 뒤져서 나온 VPN 유틸을 하나 소개한다. https://www.vpngate.net/en/ 일본의 쓰쿠바대학 에서 제공하는 오픈소스 VPN 인데, 여러 나
TestTool문득 그 전에 스터디 했던 책을 요약 정리했던 글들이 저작권에 위반되리라 생각해서 해당 글들을 모두 삭제했다. 대신 나중을 위해서 스터디 했던 책을 적어본다. 스터디 했던 책 모음 - Head First Design Pattern - 모던 자바 인 액션 - 데이터중심애플리케이션설계 - 토비의 스프링 3.1 Vol.1 - 파이썬 알고리즘 인터뷰 - 혼자 하다
서론 서버를 운영하다보면 종종 간단한 형태의 bash script를 작성할 일이 생긴다. 이 블로그 운영에도 이런 일이 있다. 터미널에서 md 파일을 mdx 파일로 만들어서 폴더로 복사하는 부분을 bash script로 작성해서 사용하고 있다. 또한, 게이트웨이에 접속할 일이 생겼을 때 매번 ssh 명령어를 치지않고, 한줄짜리 스크립트를 작성해두고 이용하곤
Linux이 글은 토비의 스프링 3.1 Vol.2 스프링의 기술과 선택 : 3장 스프링 MVC 를 정리 & 참고하였습니다. 서론 스 프링은 의도적으로 프레젠테이션 계층의 아키텍처 과, 비즈니스 서비스 계층 + 데이터 액세스 계층을 담은 컨텍스트를 분리해두었다. 각각을 - 서블릿 애플리케이션 컨텍스트 - 루트 애플리케이션 컨텍스트 라고 일컫는다. 이중 우리가 알아볼 S
Spring결론 tomcat 의 기본 spring session timout 은 30분이다. https://docs.openkm.com/kcenter/view/okm-6.4/configuring-tomcat-session-timeout.html scrn capture 그러니까 30분까지는 세션이 유지된다.... 내가 만약 직접 세션 / context를 날려주지 않으면
SpringTomcat서론 null id in entry 에 봉착했다. 구글의 검색기록을 보니 이미 한번 검색해봤던 것 같은데... 기억이 나지 않는다. 전제 항상 가져오는 Member entity가 있다고 해보자. 필요한건 다 있다. member 를 저장하다가, hibernate exception 이 발생했다. 제일 자주 마주하는 unique constraint 를 만족시키지
JPA2020년에 책을 기록하는 행위가 성공적으로 마무리됐다. 2021년에도 이어가보려고한다. 타이탄의 도구들 연말에 읽기 시작해서 마무리. 다양한 사 람들의 성공방식이 있겠으나 그냥 여기에서는 사소한 습관을 얘기한다. 연말에 읽었던 4시30분~ 에도 이 책을 많이 인용했길래 읽어보았음. 안테암불로, 즉 길라잡이의 역할이었다 ... 첫 직장이나 새로운 조직에 들어
BooksLifeHacks서론 개발자로 살아가기를 바랐고, 또 감사하게도 그 길을 걷고 있으면서도 항상 의문이 많다. 내 옆의 개발자들은 모두 나보다 뛰어나고, 항상 공부하고 있는 것만 같다. 나도 따라서 몇걸음 걸어보지만 맥없이 주저앉는다. 대열에 합류하기 위해서 또 일어나보고, 주저앉고... 지난 몇년간은 이 일의 반복이었던 것 같다. 잠깐 앉을 때마다 뭔가를 줍기도 했고, 같
LifeHacksProgrammerghpr builder 말고 polling jenkins주소 + /github-webhook/ 마지막 slashes 를 안붙이면 .. 302
서론 갑자기 애플리케이션이 죽었다. 🤔 Port Down 이길래 내가 모르는 배포가 있었던가 했더니 아니었다. 1) 애플리케이션 로그를 봤다. 일정 시간대 이후로 끊어진 것을 제외하고는 특이사항이 없었다. 2) 서버 CPU, I/O 등 지표를 봤다. 갑자기 과다한 요청이 들어오거나 끊긴일도 없었다. 애플리케이션이 죽은 뒤에 CPU 계산량이나 disk I/
JVMJavalog4j 취약점 문제 후술 예정 sonarqube fix sonarqube 측에서는 큰 문제는 없다고 생각하지만, 혹시 모르니 옵션을 넣으면 좋겠다는 정도로 제안했다. https://community.sonarsource.com/t/sonarqube-and-the-log4j-vulnerability/54721 - sonar.properties에 업데이트
JavaLoggingSecurity서론 너무 모르는게 많아서 한두줄로 요약하는 문서 참고 문서로 백엔드 로드맵을 첨부하려고한다. backend roadmap 출처는 https://roadmap.sh/roadmaps/backend.png 최근A에 geeknews 를 다시 돌려보다가 좋은 레퍼런스를 찾았다. 신입 개발자 커리큘럼. - 데브옵스 https://github.com/Knowre-De
Java원하는 jar 다운로드 하기 - maven central 에 올라가지 않은 jar - 버전업이 필요없는 jar - 더이상 지원하지 않는 jar 인 경우 jar 파일 라이브러리를 직접 임포트해줄 일이 발생한다. 경로는 원하는 모듈의 src 와 같은 계위에 libs 폴더 을 만들고 그 하위에 넣어준다. tree jar libs 로 만들기 Project Stru
JavaSpring Cloud 가 하는 역할 분산시스템을 개발하는 것 자체가 어렵다. 네트워크 레이어~ 어플리케이션 레이어까지 다양한 복잡성이 있고, 코드를 클라우드 네이티브하게 만든다는 것 자체가 12 가지를 고려해야한다는 것을 의미한다. Spring Cloud는 클라우드에서 어플리케이션을 실행하는데 필요한 많은 서비스를 제공한다. spring cloud arc
SpringSpring Cloud단상 01 PR 을 보다가 - 하나의 테이블 A에서, B의 id들을 가져와서 다시 B에 쿼리를 날리는 구조를 보았다. 지난번 프로젝트에서는 상황때문에 이 방법 밖에 없었지만, 당시 그 부분을 담당하셨던 부분의 코멘트를 보니 이거 사실 쿼리 하나로 풀리는 거였구나 하는 생각을 했다. 정확히는 Like인데, Like 된 item 의 id를 가져와서 item 테
DatabaseSQL유용한 맥 앱 Trailer - 깃헙의 pull request 를 실시간 알림 받고 싶다면 http://ptsochantaris.github.io/trailer/ trailer - github pull request 를 실시간으로 알림 받을 수 있다 Github enterprise에도 약간의 설정만으로 연동가능. intellij 에 연동된 비슷한 프로그램을
LifeHacksinjects mocks 가 동작하지않아요 - ExtendWith - @Mock object - @InjectsMocks 위 처럼 했는데도 sut이 null 로 나와요 junit4 인 경우 @Test의 패키지가 import org.junit.jupiter.Test; junit5이면 @Test의 패키지가 import org.junit.jupiter.api.T
SpringMockito문제상황 같은 batch job A 가 있다. 이 batch job의 job parameters 중 하나가 time 인데, time 은 꼭 있어야하는 parameter 중 하나다. 하지만 코드 상에서는 time이 null 인 경우, 현재 시간을 넣도록 설정해두었다. 이 배치 job A 를 각각 jenkins 의 다른 item으로 설정해두었다. 하나는 wit
Spring서론 개발블로그와 파이프라이닝용 블로그를 함께 운영하면서, 조금 불편한 점이 하나 있었다. 트위터나 인스타그램의 설명란에는 하나의 링크만을 넣게 되어있는 것. 이미 있는 채널을 이용해서 블로그를 홍보하고 싶은데, 좀 불편했다. 이미 있는 대안 사실 인스타그램을 서칭하다보면 여러 대안이 있었다. - linktree https://linktr.ee/ linke
Web