profile
Software Engineer + Product Manager
태그 목록
전체보기 (326)개발일기(80)토비의 스프링(26)더 나은 코드(23)테스트(20)Netty(20)Java(18)더 나은 테스트(15)How to work(13)생각(12)trouble shooting(11)트러블슈팅(10)프로그래머스(10)코딩테스트(10)회고(9)더 나은 설계(8)토비의스프링(8)커뮤니케이션(8)tcp(8)git(7)프로덕트 오너(7)network programming(6)우주지상국(6)agile(6)(6)C(6)비동기(5)dll(5)aop(5)asynchronous(5)알고리즘(5)읽기모임(5)2021(5)더 나은 도구(5)고민(5)junit(5)TDD(5)자세(5)매니지먼트(4)IntelliJ(4)배움(4)네트워크 프로그래밍(4)커리어(4)추상화(4)코드리뷰(4)JNA(4)wireshark(4)windows(4)독서(4)문제(4)Spring(4)github(4)인프콘(4)오브젝트(3)debug(3)의존관계(3)네트워크 패킷분석(3)학습(3)협력(3)객체지향(3)관계(3)습관(3)awaitility(3)test(3)데이터(3)예외(3)프로젝트 매니저(3)문제해결연습(3)Software Engineering(3)Telnet(3)협업(3)실시간(3)multithreading(3)연역적(3)2022(3)사람(3)mock(2)management(2)개방폐쇄원칙(2)주석(2)분석(2)배포(2)실용주의 프로그래머(2)변경(2)networking(2)태도(2)clean architecture(2)http(2)클린 아키텍처(2)Software Enginerring(2)소프트웨어 개발자(2)컨퍼런스(2)test case(2)귀납적(2)jackson(2)제품(2)사용자(2)문제 해결 연습(2)기획(2)마인드(2)리팩토링(2)User Manual(2)온보딩(2)목표(2)TROUBLESHOOTING(2)코드로 문제해결 연습(2)개발문화(2)리더(2)Mockito(2)문서화(2)(2)더 나은 디자인(2)cherry-pick(2)leak(2)가치(2)디버깅(2)collaboration(2)ci(2)stream(2)Locale(2)함께자라기(2)결합도(1)대역(1)동료(1)조직(1)아주힘듬(1)SOLID(1)network(1)branch(1)XML(1)네이밍(1)EventLoop(1)삶의자세(1)흥미(1)병렬(1)모델링(1)CI/CD(1)Manangement(1)Transction(1)switch(1)고통(1)Nginx(1)json(1)주니어(1)자유(1)더나은코드(1)철학(1)환경(1)1553B(1)프로그래밍(1)redmine(1)impact(1)우주(1)행복(1)메시지큐(1)String(1)동반자(1)인터뷰(1)부모참여수업(1)감정(1)복잡성(1)클린코드(1)Ideation(1)di(1)커밋(1)putty(1)JIRA(1)어린이(1)성과(1)화면중심(1)경계값(1)도구(1)short circuit(1)clean software(1)누수(1)예외처리(1)Native(1)더 나은 개발(1)SDLC(1)발표(1)제약사항(1)마음 가짐(1)중복(1)제안서(1)notion(1)생각의프레임(1)회사(1)개발자(1)memory(1)Reflection(1)교보문고(1)사업(1)창업(1)도전(1)split()(1)멀티쓰레드(1)Csharp(1)Messaging Service(1)함께(1)의존(1)svn(1)프로젝트(1)Product Design(1)유틸리티(1)help(1)Strategy Pattern(1)예측(1)aws(1)Feedback(1)작업난이도(1)snmp4j(1)어설프다(1)이슈관리(1)lazy(1)템플릿/콜백(1)kotlin(1)데이터 통신(1)핀란드(1)동등분할(1)준비(1)약함(1)장애회고(1)volatile(1)삶의일기(1)아두이노(1)디자인 패턴(1)신뢰성(1)크리스찬(1)User Journey(1)코딩(1)lua script(1)관심(1)테스트케이스(1)alignment(1)생존(1)heap memory(1)노이즈캔슬링(1)기록(1)PSA(1)MVP(1)인사이트(1)독서메모(1)InvalidMemoryAccess(1)일기(1)algorithm(1)aspect(1)메타포(1)spark(1)템플릿(1)스프링(1)DTO(1)exception(1)트러불슈팅(1)설계(1)authentication(1)cdd(1)부족함(1)코드변경관리(1)다름(1)세미나(1)변화(1)Persona(1)문서(1)자동화(1)메모리(1)프로세스(1)캐시일관성(1)인증(1)SNMP(1)비실시간(1)객체지향의사실과오해(1)커뮤니티(1)StringUtils(1)Pain Point(1)figma(1)비정상종료(1)우선순위(1)캐시불일치(1)warning(1)IoC(1)assembly(1)projects(1)집중(1)문제정의(1)actions(1)SI 프로젝트(1)신뢰(1)문화(1)rebase(1)죽음(1)빌더 패턴(1)리드잇(1)백로그(1)Thread(1)Product Designer(1)S3(1)Pull Request(1)garbage collector(1)아쉬움(1)ObjectMapper(1)iteration(1)VxWorks(1)문제해결(1)(1)PacketSender(1)개선(1)주간보고(1)불편(1)시니어개발자(1)데이터 엔지니어(1)코드작성외에(1)Memory Leak(1)응집도(1)software engineer(1)Pair Programming(1)힙 메모리(1)TCP Connection Persistence(1)균형(1)아이들(1)고객(1)성경(1)Device Driver(1)Thread Pool(1)OXM(1)지상국(1)실험(1)면접(1)사표(1)동료주도개발(1)소수점(1)프로토타입(1)메모리가시성(1)Interrupt(1)요구사항(1)공유(1)어려움(1)Q&A(1)util(1)Functional(1)사용자중심(1)ux(1)Copilot(1)가짜필요(1)

개발일기 #94 : 네티 그리고 새로운 길

네티 프로젝트에 올라온 Q&A를 읽다가 최근에 공부하고 있는 부분과 관련된 질문을 만났다. 우버에서 스파크를 활용해 RemoteShuffleService 라는 오픈소스 프로젝트를 하며 문제를 격고 있었다. 그리고 유사한 이슈가 아파치 스파크 프로젝트에도 있어서 함께 접

약 3시간 전
·
0개의 댓글
·

개발일기 #93 : 중첩에 중첩을 제거하기

오늘 작은 코드를 작성하고 개선해 나가면서 느낀점. 가능하다면 처음부터 잘 만들어 두는 것이 좋다. 나중에 개선해야지 생각하고 너무 쉽게 부채처럼 쌓아두었는데 부족하게 완성된 코드 베이스에서 수정하고 테스트하는데 비용이 생각보다 많이 들었다.처음 경험하는 것을 만들기

1일 전
·
0개의 댓글
·

개발일기 #92 : 오래 달리기

최근에 현업에서 바쁘게 일하다보니 확실히 알고 넘어가지 못한 기술적인 궁금증들을 하나씩 해결해 가고 있다. 지난주부터는 네티와 관련된 것들을 깊이 살펴보며 정리했다. 이런 궁금증들을 해결하며 기쁘지만 내심 조금씩 불안하다. 내가 가진 좁은 기술 스펙트럼에서 깊이만을 더

3일 전
·
0개의 댓글
·

개발일기 #91 : 쭉 해보고 정리하고 쭉 해보고 정리하고

몇 일 작업을 디지털로 쪼개려 하면(예를 들면 변경사항을 세세한 커밋으로 나누어 가면서 코드를 작성하는)일이 잘 진행이 안된다. 그냥 아날로그로 쭉 작성하다(여러 변경이 섞이지만)가 나중에 분류하거 나 안되면 그냥 통째로 커밋한다는 마음으로 하니 집중이 잘 되었다.또

4일 전
·
0개의 댓글
·
post-thumbnail

Netty 구조적 특징 (3) : 이벤트 루프

이번 글에서는 네티의 I/O 쓰레드인 이벤트 루프에 대해 정리합니다.

6일 전
·
0개의 댓글
·
post-thumbnail

Netty 구조적 특징 (2) : 비동기

이번 글에서는 네티의 비동기적 특징에 대해 정리합니다.

2023년 3월 23일
·
0개의 댓글
·
post-thumbnail

Netty 구조적 특징 (1) : 쓰레드 모델

지난 몇 년 동안 네티 프레임워크를 사용하여 우주 지상국 소프트웨어를 개발했습니다. 개발을 진행하면서 저와 동료들이 네티의 특징을 제대로 이해하지 못해 실수 했던 몇몇 경험들이 있는데 그 경험들을 바탕으로 네티의 중요한 구조적 특징들에 대해 나누어 정리해 보려고 합니다

2023년 3월 23일
·
0개의 댓글
·
post-thumbnail

(예제와 함께 보는) 기술을 학습하는 3단계

1. “Hello World”로 간단히 빠르게 사용법 익히기 2. 서비스를 만들며 만나는 문제를 깊이 있는 학습 가이드 삼기 3. 테스트 코드로 분명하게 이해하기

2023년 3월 22일
·
0개의 댓글
·

코드로 문제해결 연습 > 프로그래머스 > 당구 연습

계속해서 1시간 이내에 문제 해결이 안되었다. 오랜 시간 고민하고 학습하며 문제를 해결했다. 처음 문제에 접근하며 몇몇 복잡한 조건들이 생각났는데 이미 문제에서 제약 조건을 주고 있었다. 한 번 문제를 읽는 것으로 완

2023년 3월 19일
·
0개의 댓글
·
post-thumbnail

(서비스 제공자가 주도하는) 자바 인터럽트

자바의 인터럽트 기능(Thread.Interrupt())을 사용하면 Blocking 동작이 있는 대상 쓰레드의 동작을 안전하게 중단시킬 수 있다. 그러나 인터럽트 기능은 요청자 주도로 대상 쓰레드 실행을 임의로 중단시킬 수 있는 기능이 아니다. 인터럽트는 단지 대상 쓰

2023년 3월 16일
·
0개의 댓글
·
post-thumbnail

비동기 코드의 타이밍 테스트 하기 (with Awaitility)

비동기적으로 동작하는 코드를 테스트 하기 위해서는 시간이라는 변수를 다룰 수 있어야 합니다. 크게 아래 3가지 범주의 요구가 있습니다.

2023년 3월 14일
·
2개의 댓글
·
post-thumbnail

(테스트 코드와 함께) Java Thread Pool 동작 원리

몇 년 전까지만 해도 직접 쓰레드를 생성하고 해제 해야하는 책임을 가지는 플랫폼에서 주로 개발을 했습니다. 자바 언어로 넘어오면서 쓰레드 풀이라는 개념을 접하게 되었는데, 처음 쓰레드 풀을 접하고 사용 상의 문제는 없었지만 내부 동작을 모르니 어딘지 모르게 찝찝한 부분

2023년 3월 13일
·
0개의 댓글
·

Java Stream: 좋은 설계 표본

변하지 않는 것과 변하는 것 그리고 함께 변하는 것과 따로 변하는 것을 구분한 좋은 표본

2023년 3월 9일
·
0개의 댓글
·

Lazy Java Stream

Java Stream을 사용해 이렇게 작성된 코드를 보며 의문점이 생겼습니다. 제 생각에는 코드가 다음과 같이 동작할 것 같았습니다.filter 연산에서 스트림의 모든 항목을 순회하며 3보다 작은 항목을 추출한다. findFirst 연산에서 추출된 항목 중 첫 번째 항

2023년 3월 9일
·
0개의 댓글
·

코드로 문제해결 연습 > 프로그래머스 > 바탕화면 정리

어떻게 해결할지 보다, 문제 자체를 바르게 이해하지 못해서 혼란을 겪은 부분이 컸던 것 같다. 크게 아래 3가지 내용에 혼돈을 겪어 문제를 어렵게 바라보게 되었다.파일들이 근접(위, 아래, 대각선 방향)해 있지 않

2023년 3월 6일
·
0개의 댓글
·

프로그래머의 동상이몽

몇 일 전에 트위터에 올라온 글 덕분에 유튜브에서 영상을 하나 찾아보게 되었다. 연예인 이지혜씨와 프로그래머 출신 남편의 에피소드를 담고 있었다. 개발자인 나에게 뭔가 익숙한 장면이었는데 이지혜씨의

2023년 3월 4일
·
0개의 댓글
·
post-thumbnail

주니어 개발자의 온보딩을 도운 경험

2년차 주니어 개발자의 사수가 되어 보았다. 새로운 회사에 오셔서 완전히 다른 프로그래밍 언어와 프레임워크를 사용해야 했기에 처음에 쉽지 않아 하셨던 것 같다. 동료가 회사에 업무적으로 적응하도록 도운 과정을 회고하며 느끼고 배운 점들을 기록해 본다. 동료는 참고로 (

2023년 3월 3일
·
10개의 댓글
·
post-thumbnail

메시지 큐를 활용한, 유연한 전송 구조 만들기

특정 하드웨어 시스템을 제어하기 위해 Netty 기반 메시징 서버를 개발중입니다. 시험 중 특정 조건이 되면 타겟 시스템에서 일부 메시지를 처리하지 못하는 문제가 발생했는데요. 문제를 해결하기 위해 메시징 서버의 구조를 개선한 사례를 소개합니다.문제가 발생한 서버 시스

2023년 3월 2일
·
2개의 댓글
·

Simple Made Easy

이 글을 읽어서 좋습니다.

2023년 3월 1일
·
0개의 댓글
·
post-thumbnail

문제 현상 이면에 숨겨진 원인 찾기: TCP 통신 트러블슈팅

개발한 시스템에서 문제가 발생하면 우리가 가장 먼저 만나는 것은 문제의 표면적인 현상입니다. 우리는 문제를 해결해야 하는 엔지니어로서 문제의 현상 이면에 숨겨진 진짜 원인을 찾아야 합니다. 그래야 문제를 해결할 수 있습니다. 어느날 동료에게 전화 한 통을 받았습니다.

2023년 2월 28일
·
0개의 댓글
·