본문 바로가기 메뉴 바로가기

개발노트 - kingbbode

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

E-Mail GitHub 코딩덕후

검색하기 폼
  • 분류 전체보기 (44)
    • 개발 (24)
      • Spring (17)
      • Exception (2)
    • JavaScript (3)
    • 생각 (9)
    • DataBase (3)
      • AeroSpike (1)
      • Hibernate (1)
    • devops (5)
  • 방명록

개발 (24)
[2020-11-11] 5년차 개발자

나에게 5년차라는 개발 연차는 조금 특별하다. 첫 회사에서 내가 속한 조직에는 시니어 개발자가 없었다. 내가 입사했을 때 1년 정도 차이가 나는 선배개발자가 한분 있었고, 입사한 후 6개월 텀으로 1~2명 정도의 신입 개발자들만 채워졌다. 당시에 동료들과 나는 5년차 개발자에 관해 이야기를 많이 했다. 회사에 5년차 정도의 개발자 한분만 오셨으면 좋겠다고 매일 이야기했다. 당시에 나는 5년차 개발자는 엄청난 내공을 가지고 있는 환상 속의 시니어 개발자라고 생각했다. 2년차로 막 들어섰을 무렵 합류하신 팀장님과 면담에서 내 목표를 물은 적이 있다. 나는 그때 최대한 빠르게 시니어 개발자가 되는 것이라고 답했다. 굉장히 멋쩍게 웃으셨는데 이제는 그 웃음의 의미를 알고 있다. 내가 생각하는 시니어 개발자의 방..

개발 2020. 11. 11. 18:51
[2020-02-19] 배달의민족 최전방 시스템! '가게노출 시스템'을 소개합니다.

2020년 2월 19일 우아한형제들 기술블로그에 작성한 글 입니다. (woowabros.github.io/experience/2020/02/19/introduce-shop-display.html) 안녕하세요 우아한형제들 프론트검색서비스팀 권용근입니다. 저는 "먼데이 프로젝트" 라는 2019년 대형 프로젝트에서 요란하게 탄생하였고, 탄생한 순간부터 지금까지 배달의민족 최전방에서 활약 중인 2019년 4월 1일생 가게노출 시스템 을 소개하려고 합니다. 가게노출 시스템이란? 가게노출 시스템 은 배달의민족 최전방에서 사용자에게 가게를 노출하는 시스템입니다. 쉽고 단순하다고 생각할 수 있지만, 사실 이 시스템은 매우 복잡하고 어지러운 시스템입니다. 단순히 캐시를 서빙하는 것이 아닌, 십여개의 외부 시스템과 수십개..

개발 2020. 11. 11. 18:41
[2019-07-01] 멀티모듈 설계 이야기 with Spring, Gradle

멀티 모듈 프로젝트란? 멀티 모듈 프로젝트를 처음 알게된 건 2017년 초였습니다. 당시에 저는 단일 프로젝트를 사용하고 있었습니다. 예를 들어 제가 회원 시스템을 개발 한다고 하면 member internal api member external api member batch 와 같이 서로 독립된 프로젝트 단위로 가지고 있었습니다. 이런 구조를 가지고 있을 때 가장 큰 문제점은 시스템의 중심 Domain 이 가져야할 구조와 규칙 등을 동일하게 보장해주는 메커니즘 이 없다는 것 입니다. {: style="width:75%; display:block; margin:40px auto 0;"} 개발자는 동일한 Domain 을 가지고 있는 위 3가지 어플리케이션을 열심히 복&붙하며 개발을 하게 됩니다. 매우 귀찮..

개발 2019. 12. 29. 23:30
[2018-11-08] 스프링 원 투어 서울 컨퍼런스 중 정윤진님의 Spring Cloud Gateway 세션

2018년 11월 8일 스프링 원 투어 서울 컨퍼런스 중 정윤진님의 Spring Cloud Gateway 세션 Spring Cloud Gateway SPEC Spring 5 + Spring Boot 2 + API Gateway Pattern What is an API Gateway? 하나로 요청을 받아, 요청을 분리. Routing Canary-ing Security Monolith Strangling Monitoring Resiliency Spring Cloud Gateway Type Appliance SAAS (ex: ELB) Web Server Mesh Side Car Pattern + Proxy Pattern Developer Oriented History 초기 버전인 spring-cloud-zu..

개발/Spring 2019. 12. 29. 23:30
[2018-06-08] 스프링캠프 2018-Consumer Driven Contract

요즘 기존 프로젝트의 일부를 새로운 프로젝트로 떼어내는 작업을 하고 있다. 노후된 프로젝트인 점과 내가 알고있는 프로젝트가 아니라는 점이 지옥을 맛보게 해주고 있다. 정리를 하다보니 기능이 중복된, 프로젝트의 성격 이상으로 많은 정보를 제공하는, 불필요하게 많은 정보를 요구하는 등 이상한 End Point들이 발견되었다. 아마 오랜시간 요구사항이 점점 늘어나면서 불가피하게, 혹은 요구했었지만 이제는 다르게 사용하는 API가 되었지 않을까 생각한다. 정리를 위해 이 API들을 사용하는 서비스들에 대해서 전부 조사를 해야했고, 굉장히 많은 시간을 소비해야 했다. 정리를 하고난 후 보니 중복된 것, 사용되지 않는 것, 불필요한 요구, 제공 스펙, 그리고 그것들을 위한 테스트 코드들이 보였다. 현재와 미래의 모..

개발/Spring 2019. 12. 29. 23:30
[2018-05-08] 결제 시스템 성능, 부하, 스트레스 테스트

안녕하세요. 우아한형제들에서 결제시스템을 개발하고 있는 권용근입니다. 입사한 지 4개월 만에, 드디어 우아한형제들 기술 블로그에 글을 남기게 되어 감회가 새롭습니다. 저는 최근 결제 시스템의 개비를 진행하며 경험한 성능, 부하, 스트레스 테스트 경험을 작성해보려고 합니다. 시스템 개비 입사하고 보니 저에게는 결제 API 단순화, 결제 시스템 데이터베이스 분리 및 파티션 도입, 비동기 결제 시스템 개발 이라는 굵직굵직한 작업들이 기다리고 있었습니다. Java, Spring Framework, ORM 등의 기술 지식은 그간 해온 게 있기 때문에 (구글링이 있기 때문에) 파악하는데 어렵지 않았지만, 이미 구축되어 있는 시스템을 손대는 것은 쉬운 일이 아니었습니다. "거대 규모 프로젝트에서 내가 수정한 코드가 ..

개발 2019. 12. 29. 23:24
Java 9 Collections, Stream Improvements

2017년 9월 21일 Java 9 이 출시되었습니다. 크게 부각되고 있는 기능은 Jigsaw, Reactive Streams, REPL/JShell 가 있습니다.출시 전부터 기대를 많이 받던 기능들이지만, 학습비용이 어마어마할 것 같습니다 ..!그래서 저는 일단 제가 바로 쓸 수 있을만한, 코드 짜는 것을 더 편하게 만들어줄 수 있는 Java 9 의 새로운 기능들을 소개해보려고 합니다. 성능적인 부분과 좀 더 언어에 대한 깊은 이해가 있어야 하겠지만, 지극히 부족한 제 관점에서 편리한 기능을 소개해봅니다!소개할 내용은Collections ImprovementsStream Improvements입니다.예제는 이미 추석 전에 모두 작성했었는데…어마어마한 게으름 추석이 지나고서야 글을 작성하게 되었습니다. ..

개발 2017. 10. 30. 12:54
Spring 에서 @ConditionalOnClass, @ConditionalOnBean 사용할 때 주의할 점

Spring Boot 기반의 자동 설정을 위한 AutoConfiguration 클래스를 만들다가 발생한 이슈를 작성합니다.주의할 점을 보기 전 알아야 할 것!@Conditional 이란?스프링4에서 도입된 어노테이션으로 조건부로 Bean을 스프링컨테이너에 등록하는 역할을 합니다. 이 어노테이션은 Condition Interface 사용하여 특정 조건부로 등록되도록 만들 수 있습니다. 그리고 현재의 스프링 프레임워크에서는 미리 정의된 Condition Interface 구현체를 가지고 있는 @Conditional 어노테이션의 파생 어노테이션들이 있습니다.주의점을 적을 어노테이션은 아래 어노테이션들 입니다.@ConditionalOnClass : 특정 Class 파일이 존재하면 Bean 을 등록.@Condit..

개발/Spring 2017. 8. 28. 16:47
Spring Boot 와 Properties(or Yaml) Environment

Spring Boot 에서 properties 설정에 대한 깨달음을 얻어 정리하고자 글을 작성합니다.몇 시간 전까지만 해도 이 글은 @PropertySource Yaml 사용하기 라는 글로 작성될 뻔 하였던 글 입니다.제가 처음 위의 주제로 글을 작성하기로 마음 먹은 이유는@PropertySource 의 Yaml 미지원@ConfigurationPropeties 의 locations Deprecated때문입니다.까려고 찾아보다가, 내가 잘못 알았구나 하는 깨달음에 바로 글을 작성합니다.발단저의 10번째 블로깅이였던 스프링 부트, YAML 적용 이라는 블로그에서 소개하였던 @ConfigurationProeprties 의 locations 이 Spring Boot 1.4 를 이후로 Deprecated 되었습니..

개발/Spring 2017. 8. 28. 16:45
Quartz + Spring Batch 조합하기

Zum 에서 BeyondJ2EE 김태기 팀장님과 표준화 프로젝트를 진행하며, Zum 에서의 Batch 에 대한 표준을 작성하며 알게 된 Quartz Framework 의 매력과 직접 개발해본 Spring 과의 조합 및 궁합을 소개해보려고 합니다.Quartz란?Quartz Scheduler 는 거의 모든 Java 응용 프로그램에 통합 할 수 있는 풍부한 기능의 오픈 소스 작업 스케줄 라이브러리입니다.저에게는 다소 생소했던 라이브러리였습니다. 그래서 리서치를 해보았더니,스프링에서 Unix의 Cron 처럼 특정시간 혹은 몇분 혹은 몇시간마다 동작해는 스케쥴러를 구현해야 했다. 그래서 찾아보게 된게 Spring + Quartz Scheduler 조합의 활용이었다. 하지만 Spring 3.1 버전 부터는 Quar..

개발/Spring 2017. 8. 25. 00:12
이전 1 2 3 다음
이전 다음
최근에 올라온 글
  • [2020-11-11] 5년차 개발자
  • [2020-02-19] 배달의민족⋯
  • [2019-07-01] 멀티모듈 설⋯
  • [2019-02-03] 3년차 웹 개⋯
최근에 달린 댓글
  • 글잘읽었습니다. 비슷한 연차⋯
  • 그동안 헷갈려서 고생했던 부⋯
  • 도움 되는글 되게 잘 배우고⋯
  • 엄청나게 성장한 한 해를 보⋯

Blog is powered by Tistory / Designed by Tistory