본문 바로가기

Back-end36

cAdvisor M1에 설치하기 [GitHub - google/cadvisor: Analyzes resource usage and performance characteristics of running containers. Analyzes resource usage and performance characteristics of running containers. - GitHub - google/cadvisor: Analyzes resource usage and performance characteristics of running containers. github.com](https://github.com/google/cadvisor) 위 공식 깃헙에서 설명하는대로 cAdvisor를 설치하려고 하면 우선 아래의 에러를 만납니다. WARNI.. 2023. 4. 21.
Dockerfile 공식문서 정리 2 CMD 사용 방법 CMD ["executable","param1","param2"] (exec form, this is the preferred form) CMD ["param1","param2"] (as default parameters to ENTRYPOINT) CMD command param1 param2 (shell form) 주요 목적: 실행할 컨테이너의 defaults를 제공하는 것 CMD는 executable을 포함 할 수도 있고 안할 수도 있는데, 포함하지 않는 경우에는 ENTRYPOINT를 명시해야한다. LABEL LABEL = = = ... 이미지에 메타데이터를 추가한다. key-valeu 쌍으로 되어 있고, 두 개 이상의 쌍을 가질 수 있다. EXPOSE EXPOSE [/...] 컨테.. 2023. 4. 19.
Dockerfile 공식문서 정리 - 1 이 글은 Dockerfile reference를 읽고 정리한 글입니다. Dockerfile: 자동으로 이미지를 생성하는 문서 Format # Comment INSTRUCTION arguments Instruction은 대소문자를 구분하지 않지만 컨벤션은 agrument와 구분하기 위해 대문자를 사용한다. FROM : 무조건 다커파일은 이 지시로부터 시작하며, 부모 이미지를 가리킨다. 주석: #으로 시작하는 줄을 주석으로 처리한다. 단 parser directive는 예외이다. 시작 부분이 아니면 주석으로 처리하지 않는다. 주석에선 line continuation character()가 먹히지 않는다. instructin이나 주석 앞에 공백문자는 무시한다. 다만, argument의 공백문자는 인정된다. P.. 2023. 4. 17.
Entity의 PK은 Wrapper Type? Primitive Type? 결론: Wrapper Type으로 해야한다. 이유: null을 표현해야하기 때문이다. Wrapper와 Primitive의 대표적인 차이점은 1) Stack 메모리에 무엇이 저장되느냐 2) null을 표현할 수 있는가입니다. Primitive type은 Stack 메모리에 할당된 실제 값이 저장됩니다. 그렇기 때문에 메서드에 인자로 primitive type을 넘겨주게 되면, 항상 실제 값이 복사되어 넘어가기 때문에 공유가 되지 않습니다. 반면 Wrapper type의 실제 값은 Heap 메모리 영역에 저장이되고, Stack에는 실제 값이 저장된 주소를 가리킵니다.. 따라서, 메서드에 인자로 넘겨주게되면 주소값을 넘겨주게 됨으로 공유가 됩니다. 두 번째 차이점은 Null 표현 여부이다. Primitive .. 2023. 1. 29.
[애러해결] Could not resolve all files for configuration ':classpath'. 스프링부트 3.0 이상의 버전은 JAVA 17을 요구하고 있습니다! 저는 이렇게 generate해서 빌드해보니 제목과 같은 애러가 계속 발생해서, 고생했습니다...ㅎㅎ 스프링부트 버전을 3 미만으로 낮추거나, 자바 버전을 올리면 문제가 해결됩니다! Preparing for Spring Boot 3.0 Spring Boot 2.0 was the first release in the 2.x line and was published on Feburary 28th 2018. We’ve just released Spring Boot 2.7 which means that, so far, we’ve been maintaining the 2.x line for just over 4 years. In total spri.. 2023. 1. 27.
IntelliJ, 실수로 작업 내용이 날라갔을 때 복구 방법... 중 하나! 작업을 하다가 다른 브런치에서 작업 중임을 확인해서, IntelliJ의 smart checkout를 사용하다 실수로 abort를 룰렀습니다... 설마 설마,,, 다 날라갔습니다!! 이전 브런치에도 없고,,, 검색을 해보니,, 원래 이럴 때는 stash 기능을 사용하죠! 그런데 혹시나 인텔리제이님께서 호오옥시 저장해두지 않을까하는 마음에 이것저것 눌러보다가 shelf라는 탭을 발견했고, 이곳에 저장되어 있었습니다!! 여러분도 비슷한 일을 겪으신다면, Shelf 한번 눌러보십쇼... Shelf 이참에 슬쩍 찾아보니, Git의 Stash 기능을 조금 더 고도화한 기능이었습니다. 저의 상황처럼 commit하지 않고 브랜치를 옮기는 등 임시로 저장해둬야할 경우에 사용하죠. 둘의 차이점은 , Shelf는 원하는 파.. 2023. 1. 24.
[SpringTest] @MockBean과 @Mock 차이 들어가며 테스트를 작성하며 MockBean과 Mock을 둘 다 사용하게 되어, 간략하게 정리해볼까합니다. SpringBean이 필요하면 @MockBean, 아니면 @Mock을 사용하자 가장 중요한 것은 바로 이거라고 생각합니다. 테스트해야할 클래스가 Spring으로 부터 빈을 주입받아야하는 상황이라면 -> @MockBean을 그렇지 않다면 -> @Mock을 사용하는 것입니다. @MockBean이 붙은 필드의 클래스는 SpringBoot 실행 시 Bean을 구성할 때, 가짜 객체로 Bean을 만들어 DI 해줍니다. @Mock은 SpringBoot를 실행하지 않고 @Mock이 붙은 필드의 클래스를 가짜 개체로 만들어 직접 사용해야합니다. 대체로 단위테스트는 가장 작은 단위로 의존성을 제거하고 보는 것이 좋기.. 2022. 12. 1.
[WebSocket] 웹소켓이란? 들어가며 프로젝트를 진행하다 실시간 채팅 기능을 구현하게 되어, 구현하면서 공부한 것들을 정리해보았습니다. Before websocket ajax : 새로고침 없이 사용자 몰래 요청을 주고 받고 렌더링 가능 polling : 주기적으로 http 통신을 보내는 방식 장점: 응답간격 일정하게, 일괄처리 단점: 실시간은 아님, 보낼 것이 없어도 일단 보내야해서 자원 낭비. http header는 무겁다. long polling : time-out 될 때까지 소켓을 열어두는 방식, 연결이 끊기면 다시 연결하기 장점 : 실시간 단점 : 여전히 보낼 것이 없어도 계속 보내야함. What is WebSocket? 특징 양방향 전이중 통신을 위한 TCP 기반의 transport protocol 소켓 연결을 계속해서 유.. 2022. 11. 29.
[JPA] JPA의 Entity의 Equality 동일성에 대하여 문제 상황 어떤 회원이 한 게시물의 조회수를 최초에 한번만 올릴 수 있도록 로직을 짜는 과정에서, NullPointer에러가 발생했습니다. 회원과 게시물 Entity를 다:다 관계로 연결하기위해서 조인 테이블 역할을하는 엔티티를 중간에 껴서, 회원 -다-------1-->조인테이블 2022. 11. 5.