커머스 혹은 유통 도메인 설계에 대한 연작
그간 간헐적으로 설계에 대한 이야기를 써왔는데, 최근 8년정도 몸담고 있는 유통(리테일 혹은 커머스) 업무에 대해서 비즈니스 해석과 개념 설계 활동을 프로그램 구현과 연결하는 실제 현장 이야기 써볼까 합니다. 실제 현장이야기인지라 정제해서 쓰기 어려워 독자분들에게 어떤 가치가 있을지는 의문입니다. 그럼에도 불구하고 노하우 추출을 위한 첫발 정도의 의미로 연재를 시도합니다. 그
그간 간헐적으로 설계에 대한 이야기를 써왔는데, 최근 8년정도 몸담고 있는 유통(리테일 혹은 커머스) 업무에 대해서 비즈니스 해석과 개념 설계 활동을 프로그램 구현과 연결하는 실제 현장 이야기 써볼까 합니다. 실제 현장이야기인지라 정제해서 쓰기 어려워 독자분들에게 어떤 가치가 있을지는 의문입니다. 그럼에도 불구하고 노하우 추출을 위한 첫발 정도의 의미로 연재를 시도합니다. 그
같은 코드의 반복은 중복을 낳는다. 그리고 중복은 유지 보수를 어렵게 만든다. 따라서 반복을 최소화해야 한다. 이 글은 엑셀 파일 데이터를 가공하여 데이터베이스로 옮기거나 혹은 다른 파일 포맷으로 변경하려 할 때 나타날 수 있는 반복 코드와 템플릿/콜백Template/Callback 패턴을 사용하여 반복 코드를 줄여가는 과정을 소개한다. 반복 코드 엑셀 파일을 읽어
해당 코드는 Github에 공개되어 있습니다. Lombok은 자바 컴파일 시점에서 특정 어노테이션으로 해당 코드를 추가할 수 있는 라이브러리입니디. 이는 코드의 다이어트? 가독 성 및 유지 보수에 많은 도움이 됩니다. 하지만 편리한 만큼 잘못 사용하기 쉬운 것이 Lombok 입니다. 거창하게 실무에서 사용하는 Lombok이라고 표현했지만 어디까지 저의 주관적인 생각이기 때문에 각자 환경과 상황에
2019년 부터 자바 라이센스에 대한 변화가 있다고 여기저기 말이 많습니다. 오라클 홈페이지나 여러 기사 등에서는 아주 복잡하게 설명되어 있어 저 같이 복잡한거 싫어하는 개발자 입장에서는 그냥 open jdk나 아마존에서 공개한 것 사용할까 하는 마음이 많습니다. 이번 글에서 초 간단 요약 정리해 보았습니다. 조금 더 상세한 설명은 다음 글을 참고하세요. * http:
* 이 글은 11월 22일 있을 JetBrains Day 서울 2018 행사에서 발표할 내용 준비과정에서 쓴 글로 필자가 발표할 내용과 연관이 있습니다. 필자는 4차 산업 혁명 시대가 무슨 말인지 잘 모릅니다. 사실 알고 싶지도 않은 표현인데, 명색이 신문인데 삼성, 4차 산업혁명시대 '일하는 방식' 바꾼다 라고 제목을 붙여놓고, 내용은 고작 독일산
JPAJava Persistence API는 엔티티에 변경이 일어나면 이를 감지하여 자동으로 데이터베이스에 반영한다. 이런 특징에 익숙지 않은 상태에서 스프링 데이터Spring Data JPA를 사용하다 보면 예상치 못한 지점에서 SQL update 구문을 보는 경우가 있다. 이 글은 JPA 변경 감지가 무엇이고 스프링 데이터 JPA와는 어떤 관계가 있는지 설명한다. JPA 변경 감지Dirty Checking JPA는 엔티티
* 이 글은 11월 22일 있을 JetBrains Day 서울 2018 행사에서 기조연설로 준비과정에서 쓴 글로 필자가 발표할 내용과 연관이 있습니다. 2년전인 2016년에 The Future of Web Apps 란 기사를 읽고 동료들에게 우리 상황을 대입해서 의견을 공유한 일이 있다. 무려 2년이 지났는데 기사 내용은 여전히 유효하고, 오히려 직업 일상과 더욱 가까워진 느낌이라
* 이 글은 11월 22일 있을 JetBrains Day 서울 2018 행사에서 기조연설로 필자가 발표할 내용과 연관이 있습니다. 모처럼 내용이 있는[1] IT 기사가 올라왔다. 오라클의 자바 유료화? 그 진실과 거짓이라는 ZDNet의 기사인데, 눈에 띄는 내용은 아래 문장이다. 한 버전을 오랜 기간 유지해야 하는 수요를 위해 ‘롱텀서포트(LTS)’란 버전이 3년마다 오라클에서
본 글은 ‘테스트 자동화 도구’로 잘 알려진 'Selenium (셀레니움)'을 이용하여 Java + Spring 환경에서 'Web Scraping' 을 구현해 본 경험에 대한 이야기 입니다. 배경 왜 하게 됐는가? 업무 상 특정 웹사이트의 정보를 Scraping 해오는 신규 시스템을 설계하고 개발 하였습니다. 왜 Selenium 을 선택 했는가? 개발을
올해 광군제는 작년(2017년) 광군제 때와는 조금 다른 느낌으로 다가 왔습니다. 작년에는 이미 몇번의 성능적인 장애를 경험한 탓에 성능 테스트, DB 튜닝 등 여러 준비를 하고 대응을 하였습니다. 물론 작년에 이런 준비에도 불구하고 여러가지 문제가 발생을 했었죠. 2017년 광군제 서비스 운영 소감은 다음 글에 적어 두었습니다. * 개발자가 바라본 중국 쇼핑
최근 중국어 공부에 집중하느라 개발 관련해서는 느슨하게 지내고 있었는데 장애 처리 상황이 발생하여 해결했던 내용을 공유합니다. 장애 상황 외부에서 받은 데이터를 DB로 업로드 하는 프로그램이 있는데 평소에 잘 실행되던 프로그램이 특정 파일에 대해서만 저장이 되지 않는 문제가 발생하였습니다. 이 프로그램은 Spring Boot로 만들어진 프로그램으로 에러 메시지는 다음과 같은 에러 메시지가
코드는 GitHub에 공개 되어 있습니다. REST Docs 소개 Spring REST Docs는 테스트 코드 기반으로 RESTful 문서생성을 돕는 도구로 기본적으로 Asciidoctor를 사용하여 HTML를 생성합니다. Spring MVC 테스트 프레임워크로 생성된 snippet을 사용해서 snippet이 올바르지 않으면 생성된 테스트가 실패하여 정확성을 보장해줍니다. Rest Docs vs Swagger 우선 Rest Docs과 Swagger는 성격이 많이 다릅니다. Swagger는