본문 바로가기

분류 전체보기

Object-Oriented Reengineering Patterns Object-Oriented Reengineering Patterns을 읽고 정리하자.(2) Setting Direction아키텍처 비전을 유지하기 위해 네비게이터가 있어야한다.문제 정의 및 달성 방법에 대한 기준을 세우기 위해 원칙이 있어야한다.올바른 문제와 중요한 결정에 집중할 수 있도록, 가장 가치있는 것 먼저 해결해야한다.리팩토링 및 재작성 여부를 결정할 때에는 증상이 아니라 문제에 집중해야한다.변화를 위한 변화는 생산적이지 않다. 고장난게 아니면 고치지말아라.새 시스템을 범용적으로 만들고 싶은 마음이 들 수 있다. 그러나 단순하게 유지해라. 참아라.(2.1) Agree on Maxims: 원칙에 동의하기Q. 팀의 목적 의식을 수립하려면?A. 핵심 우선순위를 정의하고, 팀의 목표 달성에 도움이 되..
spring boot 3.2에서 HTTP 통신하는 방법 아는 체하기 RestClientRestclient가 등장했다. https://docs.spring.io/spring-framework/reference/integration/rest-clients.html#rest-restclient  HTTP interface Http Interface를 사용하면 fegin client처럼 선언형으로 http 요청/응답 함수를 정의할 수 있다.interface ChatGptClient { @GetExchange("/v1/chat/completions") ChatCompletionResponseDto getCompletions(ChatCompletionRequest Dto request);}  interface를 정의했다고 Spring이 자동으로 client를 인식하지는 못한다.아래..
시스템 설계 스터디 진행기 최근 서울 우먼잇츠 커뮤니티를 통해 시스템 설계 스터디를 진행했다. 스터디장으로 스터디를 준비하고, 진행했던 과정을 기록하고자 한다. 1. 그라운드룰 정하기 GITHUB PR Template 샘플## Checklist - [ ] README 파일에 다음 요소가 모두 포함되어있는지 확인합니다. * Requirements * Functional * Non-Functional * Estimates * Design * API * Reference - [ ] 해당 기술이 활용되는 사례를 생각해봅니다. - [ ] 참고하기 좋은 포스팅 사례를 찾아봅니다. - [ ] 함께 고민해보고 싶은 주제나 키워드를 생각해봅니다. 2. 스터디 주제 선정하기 systemdesignfightclub 에서 하고 싶은 주제를 설문받은 후..
<유영경님> 개발자를 위한 글쓰기 가이드 기술블로그 포스팅 및 서면 업무 요청/문의에 유용한 책이다. 목차만 잘 기억해둬도, 글의 전달력을 높일 수 있겠다는 생각이 들었다. 책의 문장도 간결하여, 머리에 쏙쏙 들어온다.  ✍🏻 밑줄 그으며 책읽기1. 요점만 말하기: 역피라미드 방식2. 제목에 요점을 담기예시ID으로 주문 검색하기 3. 문장 하나에는 주제를 하나만 쓰기4. 객관적인 근거 대기예시1. 레디스 캐시를 사용하면 응답시간이 200ms 감소한다. 2. ISMS 인증을 받기 전까지 보안 시스템을 바라보는 시선이 좋지 않았다. 5.  전문용어는 독자에 맞게 사용하기 예시1. 사용자 입력 값이 잘못되었을 때 나타나는 오류 코드입니다.2. 서비스 기술 문의 담당자는 백엔드팀 소속입니다.6. 용어와 약어를 쓸 때는 풀이를 쓴다. 웹 문서인 ..
<타냐 라일리> 개발자를 넘어 기술 리더로 가는 길: 성공적인 프로젝트 실행력+조직차원의 레벨업 ✍🏻 밑줄 그으며 책읽기대규모 프로젝트 진행일반적으로 프로젝트가 어려운 이유는 기술의 경계를 넓혀야 하기 때문이 아니다. 모호한 업무 방향, 복잡한 인간관계, 예측 불가의 레거시 시스템을 다루기 때문이다. 5.1 프로젝트 진행 프로세스스태프 엔지니어는 프로젝트가 공식적으로 시작하기 전에 업무를 시작한다. 프로젝트 시작 전에 압도적으로 느껴지는 일들을 미리 살펴보아야 한다. 5.2.1 새로운 프로젝트의 압박감을 극복하는 방법기존 프로젝트에 새로운 인력으로 투입된다면 투입 전에 고려해야하는 부분이 많다. 대규모 프로젝트를 시작할 때, 프로젝트에 압도당하는 것은 정상적인 일이다. 모든 것을 탐색할 수 있는 지도를 머릿속에 제대로 구상하기 위해 많은 시간과 에너지가 필요하다. 심지어 초기에는 프로젝트를 감당하..
<타냐 라일리> 개발자를 넘어 기술 리더로 가는 길: 빅 피처 관점의 사고력 ✍🏻 밑줄 그으며 책읽기 스태프 엔지니어의 역할 빅피처 관점: 가능한 것들을 이해하고, 좋은 판단력을 지니는 것 성공적인 프로젝트 실행력: 내놓은 해결책이 실제로 문제를 해결할 수 있어야한다. 롤 모델 역할: 공유하는 의견이 코드와 아키텍처를 실제로 더 좋게 만들어야 한다. 제안한 의견이 옳아야하기 때문이다. 기술적 지식은 모든 스태프 엔지니어의 기본 소양이기 때문에, 해당 역량을 키우기 위해 지속적으로 노력해야 한다. 필요한 리더십 역할 커뮤니케이션 및 리더십 복잡한 문제 탐색하기 업무상 관점 제시하기 멘토링, 후원, 위임하기 다른 사람들이 관심을 갖도록 문제 구성하기 리더가 아니어도 리더처럼 행동하기 빅 피처 관점의 사고력 왜 스태프 엔지니어인가? 시니어 단계에서 꾸준히 자기 계발을 지속하면 '기술..
[Spring] 유틸리티 클래스에 빈 생성자를 만들어야하는 이유 public final class AmericanoUtils { public static boolean isEmpty(String source) { return source == null || source.length() == 0; } } 위와 같은 유틸리티 클래스를 만들면, 소나큐브에서 "add a private constructor to hide the implicit public one" 워닝이 뜬다. 유틸리티 클래스에는 기본 생성자가 만들어져있어야하기 때문이다. 유틸리티 클래스에 왜 기본 생성자를 만들어야할까? 컴파일러는 생성자 코드가 없으면, 자동으로 기본 생성자를 생성한다. new AmericanoUtils(); 이 경우, 예상치 못한 방식대로 코드가 구현될 수 있다. 그래서 소나큐브는 기본..
개발자의 눈으로 이모지 바라보기 프로그램은 이모지를 어떻게 알아볼까? '유니코드'는 전 세계의 모든 문자를 여러 프로그램에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다. '이모지'는 유니코드로 표현한다. '이모지' 유니코드가 텍스트에 포함된 경우, 각 프로그램은 '이모지' 유니코드를 자신들이 사전에 정의한 '이모지 이미지'로 변경한다. OS / 프로그램 별로 이모지 그림체가 다른 이유는 이러한 배경 때문이다. 이모지 유니코드는 유니코드 사이트에서 확인할 수 있다. (모든 이모지 유니코드 확인하기 👉🏻 https://www.unicode.org/Public/emoji/15.0/) 이모지가 점점 다양해지고 있다! 이모지의 종류가 점점 다양해지고 있다. 그리고 다양성을 존중하는 문화가 자리잡으면서, 이모지를 다양한 피부톤과 성..