[시작하세요! 도커/쿠버네티스 - www.yes24.com/Product/Goods/93765519] 1. 도커 이미지와 컨테이너 도커 이미지 컨테이너를 생성할 때 필요한 요소 여러 개의 계층으로 된 바이너리 파일로 존재하고 컨테이너를 생성하고 실행할 때 읽기 전용으로 사용 이미지 이름의 형식 : [저장소 이름]/[이미지 이름]:[태그] 저장소(Repository) : 이미지가 저장된 장소 명시되지 않으면 도커에서 기본적으로 제공하는 도커허브의 공식 이미지라는 뜻이지만 생성할 때 생략하는 경우도 있음 이미지 이름 : 해당 이미지가 어떤 역할을 하는지, 생략 불가능 태그 : 이미지의 버전 관리 혹은 리비전(revision) 관리에 사용, 생략시 latest로 인식 도커 컨테이너 이미지로 컨테이너를 생성하면..
[클린코드 - http://www.yes24.com/Product/Goods/11681152] 객체는 처리의 추상화다. 스레드는 일정의 추상화다. - 제임스 O. 코플리엔(James O. Coplien) 동시성과 깔끔한 코드는 양립하기 어렵다 동시성이 필요한 이유? 동시성은 무엇(what)과 언제(when)을 분리해서 결합(coupling)을 없애는 전략이다 무엇과 언제를 분리하면 애플리케이션 구조와 효율이 극적으로 나아진다 이점 구조적 이점 응답 시간과 처리량(throughput) 개선 미신과 오해 동시성은 항상 성능을 높여준다 -> 동시성은 때로 성능을 높여준다 동시성을 구현해도 설계는 변하지 않는다 -> 무엇과 언제를 분리하면 시스템 구조가 크게 달라진다 웹 또는 EJB 컨테이너를 사용하면 동시성을..
[도메인 주도 설계 핵심 - http://www.yes24.com/Product/Goods/48577718] DDD 높은 가치를 제공하는 소프트웨어를 설계하고 구현하는 데 있어 전략적, 전술적으로 도움을 주는 도구들의 모음 DDD가 우리에게 상처를 줄까? 아니다! 복잡성을 이기는 데 수반되는 고통을 줄이기 위해 DDD가 여러 도움을 줄 것이다 좋은, 나쁜 그리고 효과적인 설계 "설계하지 않는 것이 낮은 비용의 소프트웨어로 이어진다" => X "소프트웨어가 세상을 집어삼킨다" => O 설계하지 않는 것으로 기대했던 비용 절감은 심사숙고한 설계 없이 소프트웨어 제작에만 박차를 가한 사람들을 교묘하게 속였던 오류이다 설계가 필수적인 것인지, 안 해도 괜찮은지에 대한 질문은 요점에서 많이 벗어나 있다. 설계는 ..
[클린코드 - http://www.yes24.com/Product/Goods/11681152] 창발적 설계로 깔끔한 코드를 구현하자 켄트 벡이 제시한 단순한 설계 규칙 모든 테스트를 실행한다 중복을 없앤다 프로그래머 의도를 표현한다 클래스와 메서드 수를 최소로 줄인다 단순한 설계 규칙 1: 모든 테스트를 실행하라 테스트를 철저히 거쳐 모든 테스트 케이스를 항상 통과하는 시스템은 '테스트가 가능한 시스템'이다 테스트가 불가능한 시스템은 검증도 불가능하다 "테스트 케이스를 만들고 계속 돌려라"라는 간단하고 단순한 규칙을 따르면 시스템은 낮은 결합도와 높은 응집력이라는 객체 지향 방법론이 지향하는 목표를 저절로 달성한다 => 테스트 케이스를 작성하면 설계 품질이 높아진다 단순한 설계 규칙 2~4: 리팩터링 코..
[배워서 바로 쓰는 스프링 프레임워크 - www.yes24.com/Product/Goods/90051375] 1. 소개 빈에 커스텀 초기화와 정리(파괴) 로직을 넣는 방법 스프링 BeanPostProcessor 인터페이스를 구현해 새로 생성된 빈 인스턴스와 상호 작용하는 방법 스프링 BeanFactoryPostProcessor 인터페이스를 구현해 빈 정의를 변경하는 방법 2. 빈의 초기화와 정리 로직 커스텀화하기 2.1 destory-method 속성에 지정한 정리 메서드 호출하기 스프링의 ConfigurablrApplicationContext(ApplicationContext)의 하위 인터페이스에는 JVM에게 종료 훅을 등록할 수 있는 registerShutdownHook 메서드가 들어있다 종료 훅은 ..
[배워서 바로 쓰는 스프링 프레임워크 - www.yes24.com/Product/Goods/90051375] 2. 내부 빈 스키마에 정의된 을 사용해 나 엘리먼트 내부에 정의한 빈 빈 의존 관계를 여러 빈이 공유하지 않는다면 의존 관계를 내부 빈으로 만드는 것을 고려할 수 있다 내부 빈은 해당 빈 정의를 둘러싸고 있는 빈 정의 안에서만 접근할 수 있다 내부 빈 정의에 해당하는 엘리먼트는 id 속성을 지정하지 않고 지정해도 무시된다 내부 빈은 항상 프로토타입 스코프 빈이기 때문에 scope 속성이 있어도 무시된다 내부 빈은 무명이다 스프링 util 스키마 엘리먼트를 , 엘리먼트 내에서 바로 사용하는 것도 가능하다 3. depends-on 속성을 통해 빈 초기화 순서 제어하기 와 를 통해 명시작으로 빈 의존..
[클린코드 - http://www.yes24.com/Product/Goods/11681152] "복잡성은 죽음이다. 개발자에게서 생기를 앗아가며, 제품을 계획하고 제작하고 테스트하기 어렵게 만든다" - 레이 오지, 마이크로소프트 최고 기술 책임자 깨끗한 코드를 구현하면 낮은 추상화 수준에서 관심사를 분리하기 쉬워진다 시스템 제작과 시스템 사용을 분리하라 소프트웨어 시스템은 (애플리케이션 객체를 제작하고 의존성을 서로 '연결'하는) 준비 과정과 (준비 과정 이후에 이어지는) 런타임 로직을 분리해야 한다 시작 단계는 모든 애플리케이션이 풀어야 할 관심사(concern)다 관심사 분리는 우리 분야에서 가장 오래되고 가장 중요한 설계 기법 중 하나이다 public Service getService() { if ..
프로젝트 실행은 문제 없는데 아래와 같은 메세지와 함께 실행과 동시에 종료되어 버림 2021-07-06 21:10:39.713 INFO 12914 --- [ main] com.demo.DemoApplication : Started DemoApplication in 21.268 seconds (JVM running for 26.635) 2021-07-06 21:10:39.718 INFO 12914 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2021-07-06 21:10:39.720 INFO 12914 --- [ionShu..
brew update를 실행했으나,, 잘못한게 있어 정지시킬려고 ctrl+c를 연타해도 먹지를 않고ㅠㅠ 터미널 창을 그냥 껐더니 아래와 같은 오류가 나왔다 >> brew update Error: Another active Homebrew update process is already in progress. Please wait for it to finish or terminate it to continue. 해결방법은 역시 stackoverflow에서~! 아래와 같은 명령어를 치고 다시 brew update를 하면 잘된다 rm -rf /usr/local/var/homebrew/locks brew 어렵다 어려워~~ 출처 : https://stackoverflow.com/questions/39797078/a..
- Total
- Today
- Yesterday
- cacheable
- ImagePullBackOff
- springboot
- linuxkit
- 코틀린
- docker pull limit
- kotlin
- 도커
- java
- JavaScript
- ddd
- 도메인주도설계
- gradle
- 스프링부트
- 스프링
- 자바
- IntelliJ
- docker for mac
- kotlin In Action
- 쿠버네티스
- back merge
- docker
- QuickTimePlayer
- 자바스크립트
- clean code
- Spring
- Kubernetes
- k8s
- gasmask
- 클린코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |