Skip to content

juneyr.dev

wiki 위키


Life Hacks, Programmer

프로그래머를 위한 제언



내가 잘 모르고 나중에 뜯어볼 기술들 🤔

서론 너무 모르는게 많아서 한두줄로 요약하는 문서 참고 문서로 백엔드 로드맵을 첨부하려고한다.(팀원분이 참고로 보내주신것) 출처는 https://roadmap.sh/roadmaps/backend.png 최근A에 geeknews 를 다시 돌려보다가 좋은 레퍼런스를 찾았다. 신입 개발자 커리큘럼. 데브옵스 https://github.com/Knowre-Dev/DevOpsCurriculum 웹개발 https…



Test, Mockito

Mockito when으로 repository save 구현하기

상황 Test를 mockito로 작성하던 도중, repository의 save을 모킹해줄 일이 생겼다. 테스트하려는 메소드의 로직이 respository의 행동을 포함하고 있었기때문인데, 실제로 repository가 들고 있거나 DB에 저장되지 않아도 save 한 것 처럼 넣은 객체를 그대로 받고 싶었다. 일반적인 when - return 으로는 해결되지 않아 스택오버플로우를 참조했다. 해결방법 https…



2021년의 책

2020년에 책을 기록하는 행위가 성공적으로 마무리됐다. 2021년에도 이어가보려고한다. 타이탄의 도구들 (1/1) 연말에 읽기 시작해서 마무리. 다양한 사람들의 성공방식이 있겠으나 그냥 여기에서는 사소한 습관을 얘기한다. 연말에 읽었던 4시3…



intelliJ + Spring Boot + gradle 에서 로컬 jar lib 넣는 방법

원하는 jar 다운로드 하기 maven central 에 올라가지 않은 jar 버전업이 필요없는 (^^!!) jar 더이상 지원하지 않는 jar 인 경우 jar 파일 라이브러리를 직접 임포트해줄 일이 발생한다. 경로는 원하는 모듈의 src 와 같은 계위에 libs 폴더 (이름은 딱히 상관없지만 convention) 을 만들고 그 하위에 넣어준다. jar libs 로 만들기 Project Structure…



Spring Cloud 란

Spring cloud 역할 알아보기



쿼리와 로직

쿼리와 로직에 대한 단상



맥 hacks

유용한 맥 앱 Trailer - 깃헙의 pull request 를 실시간 알림 받고 싶다면 http://ptsochantaris.github.io/trailer/ trailer - github pull request 를 실시간으로 알림 받을 수 있다 (사실 실시간은 아닌듯, 배치로 보인다) Github enterprise에도 약간의 설정만으로 연동가능. intellij…



mockito inject mocks 가 갑자기 동작하지않아요 🤔

injects mocks 가 동작하지않아요 ExtendWith(MockitoExtension.class) @Mock object @InjectsMocks 위 처럼 했는데도 sut이 null 로 나와요! junit4 인 경우 @Test의 패키지가 import org.junit.jupiter.Test; junit5이면 @Test의 패키지가 import org.junit.jupiter.api.Test…



로드맵 파헤치기

서론 roadmap 을 보면서, 내가 아는 것도 어렴풋이 알고 있고 모르는 건 아주 화끈하게 모른다는 점을 알게 되었다. 머릿속에 정리가 안되는 찜찜한 상태로 있기 보다는, 일단 위키를 만들어서 써내려가기로 했다. 최대한 2-3줄 안에 정리하는게 목적인데 잘 될지는 ! 😮 상세한 설명을 한 나의 블로그 글이 있으면 첨부한다. CS 기본 지식 관련 질문 (네트워크 / 자료구조 / OS / 알고리즘) OSI…



스프링 배치 CLI, job parameter 재사용 오류

문제상황 같은 batch job A 가 있다. 이 batch job의 job parameters 중 하나가 time 인데, time 은 꼭 있어야하는 parameter 중 하나다. 하지만 코드 상에서는 time이 null 인 경우, 현재 시간을 넣도록 설정해두었다. 이 배치 job A 를 각각 jenkins 의 다른 item으로 설정해두었다. 하나는 with parameter, 하나는 without parameter…



[WIP] 15분안에 Bio에 들어가는 링크 모음 웹사이트 만들기

서론 개발블로그와 파이프라이닝용 블로그를 함께 운영하면서, 조금 불편한 점이 하나 있었다. 트위터나 인스타그램의 설명란에는 하나의 링크만을 넣게 되어있는 것. 이미 있는 채널을 이용해서 블로그를 홍보하고 싶은데, 좀 불편했다. 이미 있는 대안 사실 인스타그램을 서칭하다보면 여러 대안이 있었다. linktree https://linktr.ee/ 내가 자주 클릭하게 되는 the edit의 link tree…



docker desktop 정리 후 testcontainer image pull 실패

서론없이 결론만 docker desktop 정리 (안쓰는 이미지 정리) 후, 갑자기 testcontainer에서 사용하는 redis 이미지를 찾을 수 없다며 테스트가 오류를 뱉기 시작했다. cannot find image 가 오류 명이여서, 레포지토리가 만료되었나? 생각했지만 찾아봐도 docker 자체의 문제라는 이야기뿐.. 결국, 도커에 할당된 메모리가 적어서 생긴 문제였다. 원래 4GB 로 해줬는데 리셋하면서 1GB…



Term, Spring

Inversion Of control

제어의 역전 Spring 을 처음에 배울 때 마주하는 개념이 IoC(Inversion Of Control) 혹은 DI(Dependency Injection)이다. 컴퓨터 용어는 전반적으로, 아는 사람이 보면 기가 막힌 용어지만 한눈에 알아보기는 어렵게 만들어진 것 같다. 이 역시 대표적인 사례이다. johngrib님의 블로그 를 복습차원에서 보다가 다시 이 개념을 마주했다. IoC를 가장 잘 설명한 것 토비의 스프링 3.…



M1 맥 도전기

서론 2020 년형 m1 맥 미니를 구매한지 몇주가 지났다. 이제서야 블로그도 다듬고 하기 시작했으므로, 간단한 글을 쓰는 외에는 사용하지 않고 있었는데 iterm을 세팅하고 나니 실감이 났다. '아😳 ... 바꿔줘야할게있구나...' 이는 Big Sur 로 업그레이드된 OS 때문이기도 한데, 일단 어제는 nvm 과 대차게 싸우고 왔다. 가만가만히 필요한 것들을 적어본다. nvm 10이 설치가 안되는 문제 gatsby-cli…



Kubectl 명령어

기본 명령어 apply: 적용합니다. get: 리소스를 확인합니다. describe: 리소스 상세 상태보기 get보다 상세하게 delete : 리소스 제거 logs : 로그 조회 exec : 컨테이너에 명령어 전달. config: 설정 관리 kubectl 은 여러개의 클러스터를 컨텍스트로 설정하고 원하는대로 선택할 수 있습니다. 현재 어떤 컨텍스트로 설정되어있는지 확인합시다. 확인가능한 리소스 node는 no…



2020년의 책

2020년에 읽은 책 모음



gradle facts

gradle build가 느린 이유 daemon을 띄우고, 원격으로 붙여서 빌드를 하기때문이다. intelliJ 에서 빌드를 하면 그래서 상대적으로 빠르다. 하지만 intelliJ의 경우 hook을 걸수가 없고, 걸려고 해도 전체 test에 가서 따로 붙여줘야한다. 자동화가 안된다는 단점이 있다. 정작 jenkins 등 CI 툴에서 빌드 명령을 내리려면 ./gradlew…



Study, Development

[WIP] 자존심을 공부 동력으로 쓰자

서론 글또 이전에 하고 있던 모던 자바인 액션 스터디가 종료되고, 글또가 종료되었다. 글또는 주기적으로 블로그 글 발행을 목표로 함께 달리는 그룹이다. 좀더 자세한 정보를 원한다면 글또 4기 후기 를 참고하자. 그런데 기술 블로그를 작성하려면 공부를 해야하기때문에, 글또 자체가 공부 장려로 효과가 상당히 좋았다. 벼락치기라도…



헷갈리는 leetcode 문제 정리하기

오답노트 🙄



블로그 vercel 로 옮기고 dns 세팅하기

netlify 안녕! 👋



@MockBean, @SpyBean : 테스트더블

서론 옛날에 테스트 더블에 대한 글을 작성한 적이 있었는데, 이번에 또 spy 대신 mock을 쓰는게 정말 적절한 예를 경험해서 일단 적어둔다. 상황 A 서비스 를 캐싱하는 A-cache service를 B 서비스가 참조하고 있던 상황. 이제 B 에 대한 테스트를 짜려고한다. 그런데 A-cache service의 메소드가 그냥 값만 돌려줬으면 좋겠다. 이때 A-cache 서비스를 Spybean으로 가져온다면 cache…



Cannot find symbol in IntelliJ

Cannot find Symbol 오류 다양한 방법으로 일어난다. 대부분 프로젝트 구조를 바꾸거나 dependency 를 bump up 하거나... 하는 방법으로 일어난다. gradle dependency 다운로드 그냥 리로드만 하면 가져올줄알았더니.. gradle 프로젝트에서 - 오른쪽클릭해서 - refresh gradle dependecies 해야 가져온다. Rebuild project clean project…



Java 8, 9 Optional 사용하기

11장. null 대신 Optional 클래스 NPE는 모든 자바 개발자를 괴롭히는 예외중 하나다. null 참조를 처음 설계할 때는 null 구현으로 값이 없는 상황을 가장 단순하게 구현할 수 있다고 판단했다. 후에 null 을 설계한 호어는 이를 10억달러짜리 실수라고 표현했다. 💵🦋 11.1 값이 없는 상황을 어떻게 판단할까? Car 필드가 @NotNull 로 설정되어있지 않은 이상, 위 코드에서 car…



transactional

No Session Exception 을 마주한 적이 있다면 https://bebong.tistory.com/entry/JPA-Lazy-Evaluation-LazyInitializationException-could-not-initialize-proxy-%E2%80%93-no-Session 또한 @Transactional 어노테이션을 붙인 메소드는 반드시 접근자가 public…



Linux, CLI, Network

리눅스 시스템 관리 cheatsheet

Linux shell scripting Shell 이란 사용자와 OS간의 징검다리 Shell script 빠르고 간단한 프로토타입으로서의 역할 반복되는 일련의 커맨드나 유틸리티 실행 작업을 한번에 묶어서 처리한다 스크립트 첫줄의 # 는 스크립트를 해석할 프로그램을 지정 shell 종류 bash : 리눅스 기본 shell. 전통 shell인 sh와 호환 csh : c 와 비슷한 문법의 shell ksh : sh…



Jenkins 사용기

ghpr builder 말고 polling jenkins주소 + /github-webhook/ 마지막 slashes 를 안붙이면 .. 302



가장 간단한 CS 지식

인터넷 🤔 Internetworking protocol 이라는 개념으로 처음 등장했음. Vint Cerf 와 Bob kahn이 제안 ! 연결 지향 링크 : 목적지가 어딘지 주소를 만들고 전송 제어 프록그램 : 안전하게 가자 레이어가 있는 상태에서 두개의 레이어를 거치기가 힘들어서, TCP/IP 로 분리됨 TCP (통신 제어 프로토콜)로서 역할, IP…



leetcode 자바로 풀자! (easy)

알고리즘 바보의 도전



자바 이야기

Java , 그리고 T 메모리 메모리에서 스태틱 영역은 클래스들, 스택은 메소드들, 힙은 객체들의 놀이터다. 멀티스레드와 멀티프로세스 멀티 스레드의 T 메모리 모델은 스택 영역을 스레드 개수 (n) 만큼 분할해서 사용하는 것이다. 멀티 프로세스는 다수의 데이터저장 영역 (T메모리)를 갖는 구조다. 그러니까 각자의 T…



queryDSL 팁

조각모음