보호되어 있는 글입니다.
한두달 전쯤 독서 모임에서 번개를 했다. 남산을 좀 걷다가 시원한 카페에서 음료를 마시고 해방촌의 작은 서점들을 갔다. 서점들은 작고 책이 빼곡 했다. 걸어 오면서 사람들과 이런 독립 서점들을 운영하는 사람들의 생계를 걱정하는 대화를 하기도 했고, 마침 책 선물도 하고 싶어 기어코 책을 샀다. 우선 선물할 책으로는 이 책을 샀다. 그리고 내가 읽을 책으로는 항상 궁금하던 이 책을 샀다. 나는 여름을 살고 싶어한다. 선물로 줄 책은 여름안에서 여름을 기념하는 책이라면, 내가 읽을 책은 여름 밖의 이야기를 다룬 책이다. 오늘 을 다 읽었다. 바깥은 여름은 단편 소설집이다. 다음의 소설들이 포함되어 있다. 입동: 어린 자식을 잃은 부모 이야기 노찬성과 에반: 늙은 유기견을 키우는 조손 가정 이야기 건너편: 이..
1장. 표기법과 메타모델 UML을 사용하는 방법들 스케치, 청사진, 프로그래밍 언어 필자의 편견으로는, 이 셋 중에서 가장 보편적인 것은 UML을 스케치로 생각하는 것이다. 이 방식에서는 개발자가 시스템의 어떤 측면에 대해 다른 사람과 의사 소통하는 것을 돕는 목적으로 UML을 사용한다. ... 스케치는 순공학(Forward Engineerging) 또는 역공학(Reverse Engineering)에 사용될 수 있다. 스케치의 핵심은 선택성이다. 순공학에서는 작성하고자 하는 코드의 어떤 문제에 대해서 대강 스케치를 해서 팀 내의 사람들과 의논을 한다. 이 책은 설계를 스케치하는 용도의 UML을 소개하는 책이다. 적법한 UML이란 무엇인가? 언어의 두가지 카테고리 규범적인 규칙(Perscriptive ru..
보호되어 있는 글입니다.
비즈니스 로직과 상관없지만 해야하는 일들이 있을 때, Spring 프레임워크에서 제공하는 Event를 사용하여 비즈니스 코드와 비즈니스와 관련 없는 코드의 의존을 분리한다. 예를 들어, 비즈니스 특정 행위를 로그 테이블에 적재해야 할 때, 나의 판단에는 비즈니스의 흐름에 로그 테이블에 적재하는 코드를 넣는 것은 비즈니스 흐름을 읽는 데 방해가 된다. 그래서 이벤트를 발생시키고 해당 이벤트의 Listener 객체가 해당 작업을 수행하도록 한다. 참고; https://javacan.tistory.com/entry/Handle-DomainEvent-with-Spring-ApplicationEventPublisher-EventListener-TransactionalEventListener 스프링 Applicat..
https://stackoverflow.com/questions/41149529/sql-error-1064-sqlstate-42000-caused-by-org-hibernate-exception-sqlgrammar SQL Error: 1064, SQLState: 42000 - Caused by: org.hibernate.exception.SQLGrammarException: could not execute statement I am really exhausted in solving the below error. Any help is very much appreciated. org.springframework.dao.InvalidDataAccessResourceUsageException: could not..
최근의 나의 주요 작업은 하나의 도메인 단위로 서비스를 재구성하는 것이다. 예를 들어, 포인트 관련된 기능이 하나의 DB를 가지고 여러 서버 애플리케이션에서 구현되어 있다면, 포인트 관련된 서비스를 만들고 각 서버 앱들이 포인트 서비스 API를 호출하도록 변경한다. 그리고 포인트 서비스용 DB를 따로 분리한다. 포인트 서비스는 API 수준의 기능을 노출하고 DB는 숨기는 것이다. 작업 방식은 보통 기능을 추출하고 기능단위로 API를 구현하고, 기존 서버 앱들이 해당 API를 호출하도록 작업한다. 굉장히 위험한 작업이기 때문에 기존 서버앱의 수정을 최소화 하고 롤백가능한 구조로 작업을 진행한다. 오늘 적어볼 나의 시행착오는 도메인 모델의 이름에 대한 것이다. 보통 기존 서비스들은 DB의 테이블과 거의 비슷..
요즘도 꾸준히 좋은 개발자란 무엇인지 고민하고 있다. 최근에 좋은 개발자의 덕목 세가지를 다시 한번 생각해보고 정리해 보았다. 과거에 정리했던것과 내용이 많이 달라졌다. 참고: 좋은 개발자의 덕목 달라진 내 생각을 여기에 정리해두었다. 앞으로는 어떻게 달라질지 또 궁금하다. 협력 능력 대다수의 문제는 함께 해결해야 합니다. 그래서 좋은 개발자는 협력에 대해서 고민하고 개선하려고 노력해야합니다. 협력 능력을 두가지로 분류해보겠습니다. 첫번째는 소통능력입니다. 자신의 문제를 효과적으로 전달할 줄 알아야합니다. 그리고 친화력, 공감 능력, 갈등 조정 능력 같은 대인관계 기술들도 꾸준히 훈련하도록 노력해야합니다. 개인적으로 강조하고 싶은 것은 잘 듣고 설득 당하는 것입니다. 이는 문제를 해결함에 있어서 타인의 ..
최근에는 명령(Command)과 조회(Query) 모델을 분리해서 개발하고 있다. 그래서 JPA로 명령 모델에서 쓰이는 엔티티와 조회 모델에서 쓰는 엔티티를 따로 만든다. 그런데 생성, 삭제, 변경 류의 명령(command) 모델에서 생성된 쿼리들은 간단하고 식별하기 쉽지만, 조회 모델에서 Hibernate가 만든 복잡한 쿼리들은 이게 어떻게 실행된 쿼리인지 식별하기 어렵다. 현재 회사에서는 DBA가 가끔 슬로쿼리를 뽑아서 전달해 주는데, 해당 쿼리가 어디서 실행된 쿼리인지 찾는데 좀 오래걸린 경험이 있다. 그래서 조회용 쿼리에 주석을 붙여서 찾기 쉽게 해보려고 한다. 관련 코드는 아래 깃헙 링크에 있다. 코드는 코틀린으로 작성되어 있다. https://github.com/voyagerwoo/spring..
이 글은 아래의 링크된 포스트의 확장판이다. 아래 포스트에서는 빌드시스템으로 Gradle을 이용하고 있는데, 이번 포스팅에서는 Maven을 이용하여 Dockerfile을 최적화한다. 독자가 도커 이미지를 실행해본 경험이 있으며, 도커 파일을 만들어본 경험이 있고 도커 이미지의 레이어에 대한 이해가 있다는 것을 전제로 한다. (Docker) Spring Boot Application Image 최적화하기 문제 상황 위 포스팅은 스프링 부트 서버 애플리케이션을 도커 이미지로 만들 때 Dockerfile을 최적화 하는 것을 설명하고 있다. 스프링 부트 앱을 도커 이미지로 만드는 가장 유명한 방식은 스프링 부트 애플리케이션을 Jar 파일로 빌드하고 그 Jar 파일을 도커 파일에서 ADD 혹은 COPY 하는 것이..
Kubernetes 스터디 후기 올해(2019년) 1월 10일 부터 시작한 쿠버네티스(이하 k8s) 스터디가 드디어 막을 내렸다. 크게 3번으로 나눠서 진행했고, 총 20주에 걸쳐서 스터디를 진행했다. 이번 스터디를 통해서 좋은 사람들을 얻었고 여러 관점에서 많은 영감을 얻었다. 꼭 기록해두고 싶어서 이 스터디의 후기를 적어보고자 한다. 스터디의 동기 이 스터디를 열게 된 이유는 k8s를 사내에 도입하고 싶었기 때문이었다. 그 당시 나는 전 직장에서 도커와 AWS ECS를 이용하여 서비스를 운영해본 경험이 있었다. 현 직장은 아직 컨테이너 도입 전이었다. 현 직장은 퍼블릭 클라우드가 아닌 IDC에서 서비스를 운영하고 있었는데 막연하게 AWS의 컨테이너 오케스트레이션 서비스를 사용할 수 없으니 k8s를 해..
2019-07-17 컨테이너 소모임에서 진행한 내용입니다. 어떤 피드백도 환영합니다. 오늘의 자료 동영상 제목: Taking Docker to Production: What You Need to Know and Decide (도커를 프로덕션에 도입하기: 알아야할 것과 결정해야할 것) 스피커: Bret Fisher (DevOps Consultant, Docker Captain) 링크: https://www.youtube.com/watch?v=6jT83lT6TU8 발표자료: https://www.slideshare.net/Docker/taking-docker-to-production-what-you-need-to-know-and-decide 도커 프로덕션에 도입하기 우리가 여기에 모인 이유 도커를 운영 환경..
올해 계획했던 AWS Certified Developer Associate 자격증을 취득했다. 간단하게 그 내용을 공유하려고 한다. 자격증 소개 https://aws.amazon.com/ko/certification/certified-developer-associate/ AWS 공인 개발자 – 어소시에이트 시험은 AWS 기반 애플리케이션의 개발 및 유지 관리 실무 경험이 1년 이상 되고 개발 역할을 수행하는 사람을 대상으로 합니다. 자격증을 통해 검증되는 능력 핵심 AWS 서비스, 사용, 기본 AWS 아키텍처 모범 사례를 이해하고 있음을 증명. AWS를 사용하여 클라우드 기반 애플리케이션을 능숙하게 개발, 배포 및 디버깅할 수 있음을 증명. AWS 서비스를 가지고 아키텍처를 구성하고 개발하는 능력을 검증..
여자친구가 친구에게 빌려온 책이었다. 제목을 보자마자 읽어야겠다고 생각했다. 일하는 마음 읽고 싶었던 이유는 직장생활의 미묘한 스트레스였다. 내가 통제할 수 없는 외부 요인들에 대해 유연하고 회복성있는 정신 상태를 가져야겠다고 요새 계속해서 생각하고 있던 터였다. 책 제목을 보고 어떤 내용이든 간에 당장 읽어야겠다고 생각했다. 이 책은 나의 고민을 먼저 해본 선배의 이야기처럼 들렸다. 고민을 먼저 해봤을 뿐만 아니라 깊게 해본 선배의 이야기는 큰 공감과 안도감을 주었다. 이제 독후감을 적어보려 하는데, 머릿속에 많은 이야기와 감정들이 가득해서 정리가 쉽지 않다. 인상깊었던 부분들에 대해서 정리해보려고 한다. #1 어떻게 성장할 수 있나요? 40p-41p 잘하고자 하는 욕망은 대게 우리를 더 걱정하게 만들..
2018년이 흘러갔다. 내 한계를 실감했고 그 속에서 더 성장했다. 올해부터는 직무, 경제, 언어, 취미 영역 네가지 분야로 회고를 해보려고 한다. 타임라인 2018년 4월 오키나와 여행 2018년 8월 매쓰홀릭 퇴사 2018년 8월 ~ 9월 발리 한달 살기 2018년 10월 아이스크림에듀 입사 직무 영역 직무 영역에서는 나에게 맡겨졌던 실제 업무와 나의 직업적 성장을 위해서 했던 공부, 커뮤니티 활동 등에 대해서 다룬다. AWSKRUG 활동 2018년 4월 부터 AWSKRUG 컨테이너 소모임 운영진으로 활동했다. 모임을 운영하는 것은 생각보다 쉽지 않았지만 이곳에서 많은 사람들을 만났고 배운 것도 많다.당시 회사에서 AWS의 Elastic Container Service(이하 ECS)를 사용하고 있어서..
아직 회고도 다 작성하지 못했지만, 회고를 완성하는데 좀 오래걸릴 것 같아서, 먼저 올해 목표에 대해서 적어보고자 한다. 올 한해는 좀 더 시야를 넓혀서 성장하는 한 해가 되었으면 한다. 그래서 회고와 마찬가지로 직무, 경제, 언어, 취미 영역 네가지 분야에 대한 목표를 선정하고자 한다. 직무 kubernetes 공부하고 실제로 운영해보기 코드 리뷰 많이 하기 kotlin, typescript, go 언어 중 2가지 이상 공부하기 네트워크 공부하기 내가 작성한 코드의 테스트 커버리지 60% 이상 높이기 (리팩토링은 당연!) 인프런에 도커 강의 만들기 AWS 자격증 따기 경제 관련 서적 12권 읽기 급여의 절반 이상 저축을 통해서 기반 다지기 언어 모던 패밀리 시즌 1-4까지 Phil의 대사를 필기하고 따..
원본 링크 : https://github.com/voyagerwoo/docker-hands-on/tree/master/PART2-build-docker-imagecommit 4069198282306d9632af983ac6cfb66d89941c87 목차 docker commit 명령어로 사용자 정의 이미지 만들기 도커 이미지 구조 Dockerfile로 사용자 정의 이미지 만들기 apache2가 설치된 이미지 빌드 컨텍스트와 Dockerfile 빌드 과정 Dockerize Express App 연습문제 : Dockerize Spring App 도커 허브에 이미지 배포 정리 docker commit 명령어로 사용자 정의 이미지 만들기 당연하게도 우리는 우리의 입맛에 맞는 사용자 정의 이미지가 필요합니다. 이번..
원본 링크 : https://github.com/voyagerwoo/docker-hands-on/tree/master/PART1-docker-image-and-container commit c5552f33261fd903ed4c482ed470bb5289d708d7 목차 도커란? 도커 엔진 도커 아키텍처 도커 데몬 도커 클라이언트 도커 레지스트리 도커 오브젝트 도커 이미지 도커 컨테이너 도커 설치 도커 허브 회원 가입 도커 이미지와 컨테이너 실습 hello-world tomcat MySql & Wordpress 연습문제 1 : 도커 볼륨을 이용하여 tomcat에 war 배포 연습문제 2 : 도커를 이용하여 master-slave 구조의 jenkins 구축 정리 도커란? Docker는 응용 프로그램을 개발, ..
- Total
- Today
- Yesterday
- 독후감
- ES6
- Clean code
- hands-on
- springboot
- Docker
- 한달살기
- 도커
- 개발자
- 발리
- 실수노트
- spring boot
- 컨테이너
- spring
- S68
- ecma6
- sanur
- javascript
- 객체지향
- AWSKRUG
- rest
- ChatGPT
- AWS
- 웹을 지탱하는 기술
- container
- Bali
- 회고
- 사누르
- html
- 웹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |