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

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

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

7일 전
·
0개의 댓글
·

Simple Made Easy

이 글을 읽어서 좋습니다.

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

비지니스 로직에 집중하는, 비동기 테스트 코드 만들기 (Awaitility)

최근 몇 년 간 비동기 시스템에서 코드를 작성하고 테스트하는 일이 많아졌습니다. 어느 날 테스트 코드를 작성하고 있는데 테스트 코드에서 비지니스 로직을 표현하는 코드 보다 비동기적인 처리를 위한 기술적인 코드들이 더 많은 것이 눈에 띄었습니다. 다음 예제 코드는 상점에

2023년 2월 15일
·
0개의 댓글
·
post-thumbnail

Mock 프레임워크(Mockito)의 핵심 기능 학습 테스트

Java의 대표적인 Mock 프레임워크인 Mockito에서 제공하는 핵심 기능들에 대한 학습테스트 코드를 작성합니다. 우선 테스트를 위해 테스트 대상 클래스(TestTarget)와 목킹 대상이 될 협력 클래스(Collaborator) 그리고 둘 간에 주고 받을 메시지

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

더 나은 테스트 코드 : 일관성, 속도, 가시성

테스트의 일관성과 속도 두 마리 토끼 잡기

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

토비의 스프링 | 7장 스프링 핵심 기술의 응용 (여러가지 배운것)

애노테이션은 정의하기에 따라서 타입, 필드, 메서드, 파라미터, 생성자, 로컬 변수의 한 군데 이상 적용 가능하다.애노테이션이 부여된 클래스의 패키지, 클래스 이름, 접근 제한자, 상속한 클래스나 구현 인테페이스가 무엇인지 알 수 있다.애노테이션 같은 메타정보를 활용하

2022년 11월 7일
·
0개의 댓글
·

토비의 스프링 | 6장 AOP - 더 나은 설계, 테스트

토비의 스프링 6장 AOP를 읽고 더 나은 설계 및 테스트를 위한 내용을 별도로 정리합니다. 스프링의 ProxyFactoryBean의 설계를 보면서 기술적인 영역에서도 변하는 것과 변하지 않는 것을 구분하면 재사용성을 높일 수 있고 최소한의 노력으로 변경에 대처할 수

2022년 10월 24일
·
0개의 댓글
·

개발일기 #54 : 문제를 해결하고자 적극적으로 도움을 구하는 자세

신규 안테나의 제약사항 때문에 미션을 수행할 수 없는 구간이 생기는 문제가 있었다. 하드웨어 엔지니어로부터 미션이 안되는 구간을 감안하고 운영하겠다는 이해할 수 없는 대답을 듣고 마음이 어려웠던 기억이 난다. 그 날 회고를 하면서 나 스스로 문제를 해결하겠다는 마인드를

2022년 10월 20일
·
0개의 댓글
·

동등분할(Equivalence Partitioning)과 경계값(boundary value) 테스트

최근에 배운 동등분할과 경계값 테스트라는 개념을 현업에 적용해 보았다. 동등분할이란, 동일한 결과를 내는 입력들을 하나의 그룹으로 묶어서 입력 그룹의 대표 값을 정해 테스트하는 것을 의미한다. 경계값 테스트를 이어서 적용하면 동등분할로 구분된 각 입력 그룹에서 경계에

2022년 10월 14일
·
0개의 댓글
·

개발일기 #45 : (우물안 개구리) 배우고 학습한 것만 보인다

요즘 토비의 스프링 책에서 배운 내용들이 내 업무 현장에서 춤을 추는 것 같다. 오늘 안테나의 위성 추적 경로를 최적화 하기 위한 간단한 알고리즘을 설계하고 구현하는 작업을 했다. 테스트 방법을 고민하다 지난주 토비의 스프링 책에서 읽었던 ‘단위 테스트 고립하기’라는

2022년 10월 11일
·
0개의 댓글
·

테스트 대역(Double)

토비의 스프링 5장 서비스 추상화를 읽고 테스트와 관련된 내용을 별도로 정리합니다.최근에 테스트 대역이라는 용어를 처음 접했다. 여기서 사용된 '대역'이라는 용어의 뜻은 '배우가 맡은 역할을 사정상 할 수 없을 때에 다른 사람이 그 역할을 대신 맡아 하는 일. 또는 그

2022년 10월 9일
·
0개의 댓글
·

토비의 스프링 | 5장 서비스 추상화 (학습)

객체지향적인 코드는 다른 오브젝트의 데이터를 가져와서 작업하는 대신 데이터를 갖고 있는 다른 오브젝트에게 작업을 요청한다. 오브젝트에게 데이터를 요구하지 말고 작업을 요청하라는 것이 객체지향 프로그래밍의 가장 기본이 되는 원리이기도 하다. 테스트 코드와 애플리케이션 코

2022년 10월 9일
·
0개의 댓글
·

개발일기 #42 : 내 머리에 담을 만한

다루고 있는 코드의 덩치가 커지면 문제의 원인을 찾는게 어려워 진다. 문제와 관련있을 법한 코드를 내 머리에 담지 못한다. 들어가지를 않아 아무것도 담지 못했으니 무엇 부터 손대야 될지 모르겠는 막막한 상태에 놓이곤 한다. 결국 내 머리에 담을 만한 단위로 나누어 내지

2022년 10월 4일
·
0개의 댓글
·
post-thumbnail

단위테스트에 @MockBean 활용하고 의존성 개선하기

MockBean을 활용해 서비스 코드의 변경 없이 의존객체의 동작을 쉽게 고정할 수 있어서 좋았습니다. 그러나 설계를 개선해 MockBean을 없애는게 더 나은 방법이었습니다.

2022년 9월 30일
·
0개의 댓글
·