/users
/posts
/slides
/apps
/books
mysetting
/users
/posts
/slides
/apps
/books
JooSing
Software Engineer
Joined on 2021년 06월 13일
Profile
Slide
Post
Like
5:09 6/13
velog.io
5:09
velog.io
Joo's Work
https://velog.io/@joosing
People and Device Interactive Developer
저작도구: velog
최종 피드 수집: 2024-04-15 03:45
전체 (466)
1d
이리로 오세요 두통
휴일을 보내고 회사로 돌아가는 아침이면 자주 두통과 우울감을 겪는다. 오늘 아침에는 문득 이런 생각을 한다. 이런 감정 패턴은 내가 단지 이겨내야 하는 것일 수도 있다. 군대를 다녀오고 고기 판매 알바를 할 때가 생각난다. 처음에
0
0
0
읽기모드
2d
인턴 면접: 현실의 더티함
계속해서 면접이 잡혀있다. 오늘은 미국에 있는 대학교에 다니는 3학년 학생의 인턴 포지션에 대한 면접이 있었다. 잠시 대화를 나눠보며 아주 훌륭한 엔지니어 같다고 느껴졌다. 고등학교 때 친구들과 창업을 한 경험이 있었고 학교에서
0
0
2
읽기모드
2d
신입 면접: 한 사람이 오는 건 그 사람의 인생이 오는 것이다
오늘은 신입사원으로 지원한 분의 면접이 있는 날이다. 면접 질문을 미리 준비하지 못해 면접 직전까지 질문 목록을 정리한다. 면접을 준비하는 시간도 데드라인이 있으니 불필요한 질문들은 신속히 버리고 정말 묻고 싶은 질문만 남기게 된
0
0
0
읽기모드
20d
문제를 먼저 풀어봅니다
유퀴즈에 출연하신 뇌과학자 이진형 교수님의 이야기를 듣고 인상깊은 내용과 생각들을 정리합니다.
유튜브 링크
저는 공부를 시작할 때 문제를 먼저 풀어봅니다. 다 틀리더라도 그렇게 함으로 내가 풀어야 하는 문제가 무엇인지 이해하게
0
0
0
읽기모드
20d
소프트웨어는 크게 달라지지 않는다
오랜만에 하루 종일 내 책상에만 앉아 프로그램을 설계하는 일을 할 수 있었다. 이틀간 쓴 휴가 때문인지 마음이 많이 차분해져 있었고 복잡한 머리도 한 결 가벼워져 있었다. 예전에 임베디드 시스템에 소프트웨어 업데이트 도구를 개발했
0
0
0
읽기모드
22d
사이드 프로젝트 : 모든 라이브 정보를 보여줄래? (Live Share)
Image by Sunny Daye from Pixabay
회사의 일 외에 지구력을 가지고 해보고 싶은 일이 생겼다.
2003년, 가수의 육성을 듣는 첫 감동
스무살 대학축제에서 였던 것 같다. 가수가 육성으로 노래하는 걸 태어나
0
0
0
읽기모드
24d
나는 몰랐던, 고성능 멀티쓰레드 동기화 기법 - CAS (Compare And Swap)
Image by freepik
난 배운적이 없는데
멀티쓰레드 환경에서 발생하는 동기화 문제를 해결하는 가장 확실한 방법은 락(lock)을 통해 크리티컬 섹션(critical section)이 원자적(atomic)으로 실행되도록 보
0
0
1
읽기모드
1M
세계지도 깃발 꽂기
어느 때부터 세계지도를 가까이 두는 것을 좋아하게 되었다. 노트북 뒷면에도 개발자 스티커 대신 큰 세계지도 스티커를 붙이고 다닌다. 몇 일 전에 새 회사 벽에 걸어두려고 큰 세계지도를 하나 샀다. 우주기업에 다니면 세계지도를 가까
0
0
0
읽기모드
1M
진짜 스타트업에서 배우고 있는 것들
Image by Joachim Schnürle from Pixabay
정통적인 프로세스라면 수 년이 걸렸을 일을 몇 개월 만에 하려고 한다. 스타트업에서 큰 시간 압박 속에서 일하며 배우게 된다.
기름기 쫙 뺀, 목표 다이어트
0
0
2
읽기모드
1M
시간을 견대내는 일
빨래통을 들여다보다 다람쥐 쳇바퀴 도는 삶을 견뎌내 온 아내의 삶이 떠올랐다. 그리고 이윽고 어머니와 아버지의 삶도 떠올랐다. 어머니와 아버지와 어려서부터 아주 친밀한 관계를 맺어오지 못했지만 그들의 지난 삶을 이제서야 떠올려 보
0
0
0
읽기모드
1M
다람쥐 쳇바퀴
퇴근 후 양말을 벗어 빨래 통에 놓는다. 오늘도 빨래통은 내 양말 한 켤레 넣을 틈 없이 가득차 있다. 문득 매일 빨래를 돌리고 널고 개기를 반복하는 아내가 생각난다. 다람쥐 쳇바퀴 도는 듯한 아내의 삶이 머릿속에 그려진다. 십
0
0
0
읽기모드
1M
환불이 어려울 수 있습니다
가끔씩 가게에서 "환불이 어려울 수 있습니다" 같은 문구를 본다. 이런 문구를 볼 때면 왜 "안됩니다"라는 분명한 표현 대신 "어려울 수 있다"는 애매한 표현을 쓰는 건지 의아했다. 나는 의사표현이 확실한 편이고 된다 안된다 분명
0
0
0
읽기모드
1M
폐지 줍는 할아버지
Copilot Designer
신호 대기 중 폐지를 산더미처럼 리어카에 지고 횡단보도를 건너고 계신 한 할아버지를 본다. 그는 신호가 다 바뀌도록 천천히 한 걸음 한 걸음 내딛고 있다. 그의 발걸음은 힘겨워 보였지만 어떤 결심이라
0
0
1
읽기모드
2M
도메인에 대해 배우는 즐거움
Image by Сергей from Pixabay
도메인에 대해 배우는 즐거움
볼트를 체결하는 기구물과 관련된 회의에 참석한다. 제품 운영 중 진동에 의해 볼트가 조금씩 풀릴 수 있는 이슈가 있다고 한다. 볼트와 너트 사이의 갭
0
0
0
읽기모드
2M
매니지먼트의 또 다른 이름 (확실한 것에 집중하기)
작가 피터 드러커를 좋아한다. 그가 매니지먼트라는 책에서 사업은 근본적으로 위험을 감수하는 일이며, 매니지먼트란 불확실한 것을 확실하게 만들어 가는 것이라고 했다. 이 말이 내게 준 영향은 컸고 이 말의 영향을 받아 과거에 좋은
0
0
0
읽기모드
2M
애자일이라고 불러도 되는가?
Image by StartupStockPhotos from Pixabay
하드웨어를 다루는 회사에 오래동안 다녀왔지만 이런 느낌의 회사는 낯설다. 말로만 듣던 스타트업 문화라는게 이런 건가 하는 생각이 든다. ‘이게 정말 된다고?
0
0
2
읽기모드
2M
궁핌함이 선물해 준 감사
경제적으로 바닥에 내려갔다가 다시 취직을 했다. 그래서일까, 회사 식당에서 점심 식사를 하며 유난한 감사를 느낀다. 변덕스러운 내 마음은 금새 이 감정을 잊어 버릴지도 모르지만 내 기억 속에 꼭꼭 담아두면 좋겠다. 오랜만에 주말
0
0
0
읽기모드
2M
겨울에 대한 불평
Image by Dim Hou from Pixabay
판교의 회사에 면접을 보러 가는 날이었다. 따뜻한 겨울이 이어지다 유난히 추운 영하의 날씨가 찾아왔다. 면접이라 편안하고 도톰한 패딩 대신 단정고 얇은 코트를 꺼내 입는 바람에
0
0
0
읽기모드
3M
책상에 앉아 있는 죽은 개발자
Image by tookapic from Pixabay
이 회사에 입사하며 ‘막노동’이라는 메타포가 내 생각을 지배했다. 그 중에 나는 나를 아무것으로도 제한하지 않는다는 생각이 있었다. 예를 들면 나는 소프트웨어 개발자니까 코드
0
0
0
읽기모드
3M
이직 : 부담감을 이기는 방법
Image by Young Kim from Pixabay
경력직 개발자로 취업한 나. 일을 시작한지 이제 3일 밖에 지나지 않았는데 여러가지 부담감이 나를 찾아온다. 당장 뭔가 성과를 내야 할 것 같은데 모르는 것이 너무 많고 아
0
0
0
읽기모드
3M
나는 멋있게 추락하고 있는거야 : 2023년 회고
2023년 한 해를 상징하는 단어를 떠올려 보라고 한다면 나는 ‘고통’이라는 단어를 꼽고 싶다. 그리고 몇 장의 카드를 더 뽑을 수 있다면 ‘부끄러움’이라는 단어도 뽑고 싶고 ‘실패’ 같은 단어도 기어이 한 장 더 뽑고 싶다. 빼
0
0
0
읽기모드
4M
내 안에서 시작된 꿈 그리고 달리기
Image by 12019 from Pixabay
수학 선생님
고등학교 시절 수능을 생각하며 진지하게 내가 하고 싶은 일은 무엇인가 고민했던 적이 있다. 그때 나는 수학 선생님이 되고 싶었다. 수학 문제를 논리적으로 풀거나 증명하
0
0
4
읽기모드
4M
2023 공개 SW 페스티벌 후기 - 듣고 배우고 느낀것
오픈소스 프로젝트에 대한 열망이 항상 있었던 것 같다. 그런데 오픈소스 프로젝트는 왜 하고 어떻게 하는가 같은 배움을 받을 기회는 많지 않았던 것 같다. 이번 행사를 통해 그런 갈증을 조금 해소할 수 있었고 듣고 배우고 느낀 것들
0
0
0
읽기모드
4M
판교에 있는 소프트웨어 회사 면접을 보다
지난주 판교의 한 회사에 면접을 보고 왔다. 판교에 있는 회사에 면접을 보는 것은 처음이었고, 이 정도 규모의 순수 소프트웨어 회사의 면접도 처음이었다. 오래 전 내가 사는 세상과 다를 것만 같았던 세상. 내게 뜬금 없이 연락이
0
0
5
읽기모드
5M
[개발일기] 일일보고 하세요
SI 회사를 다니며 갑이 을에게 줄 수 있는 최고의 제재는 일일보고를 하라는 명을 내리는 거라고 생각한다. 처음으로 일일보고를 요청 받은 건 방산 회사에서 일 할 때 테스트 시스템이 간헐적으로 재부팅되는 문제가 발생했을 때로 기억
0
0
1
읽기모드
5M
객관적인 피드백을 주는 사람
Image by Adrian from Pixabay
어제 이런 생각이 들어 짧은 메모를 남겨 놓았다.
“한 번 틀린 사실을 진짜 처럼 말하는 사람은 다른 부분에서도 반복해서 그런 실수를 하는 것 같다. 대게 객관적인 피드백을 받
0
0
0
읽기모드
5M
[개발일기] 전화위복
혼자 하는 일일 스크럼
어제 동료와 갈등을 겪으며 내가 하고 있는 일을 논리적으로, 자신있게, 흐름을 가지고 설명할 수 있어야 겠다고 생각했다. 낯선 업무를 파헤치다 보니 한 동안 내가 무슨 일을 하고 있는지 잘 정리할 수 없었던
0
0
0
읽기모드
5M
[개발일기] 고객을 만나는 기분으로 직장 상사 대하기
고객을 만나는 기분으로 직장 상사 대하기
제품을 개선하는데 많은 배경지식들이 필요하다. 도메인에 대해 알아야 하고, 기술적인 아키텍처 구조나 데이터들이 어떻게 흘러가는지도 알아야 한다. 이걸 알고 있는 사람을 사용자라고 정의하기로
0
0
0
읽기모드
6M
(회고) 레거시 코드의 문제를 다루는 자세
Image by Roy N from Pixabay
상향식으로 접근 시작
사용자가 특정한 타입의 데이터를 입력하면 시스템이 예외를 밷어냈다. 버그라고 할 수 있지만 명시적으로 지원하지 않는 데이터 타입이라 새로운 기능을 추가하는 작
0
0
0
읽기모드
6M
개발일기: 내 다음 개발자를 생각하며
여러번 스크롤을 해야 다 읽어 볼 수 있는 함수 하나를 분석하고 있다. 함수의 입력이 뭐고, 출력은 무엇이며, 어떤 부수효과가 있는지 코드 구현을 다 살펴봐야 알 수 있게 되어있다.
브랜치를 하나 따서 지역 변수들 이름을 머리에
0
0
2
읽기모드
6M
개발일기: Hello World 벽을 넘도록 돕는 교육자
파티션 너머 AI 파트 신입 개발자분의 한숨 소리가 푹푹 들려온다. 뭐 학습시키는 게 잘 안되나 해서 왜 이렇게 한숨을 쉬냐고 묻자 사내 스프링 관련 강의를 듣고 과제하는데 잘 안된단다. 잠깐 보니 REST API 호출해서 Hel
0
0
0
읽기모드
6M
개발일기: 참신한 영역에 집중하기
학습과 기록에 대한 욕심 때문인지, 내게 필요한 것들이 문서화되어 있지 않은 불편 때문인지, 무분별하게 이것 저것 글로 정리하려 덤벼들게 된다. 그렇지만 쓰고 싶은 글들을 다쓸 수 있는 시간이 내게 없다.
이미 다른 사람들이 잘
0
0
0
읽기모드
6M
IntelliJ & Maven 외부 라이브러리 참조 문제 (Cannot find declaration to go to)
문제
IntelliJ에서 Maven을 기반으로 하는 프로젝트를 처음 열었을 때 다음과 같이 외부 라이브러리 참조를 찾지 못하는 경우를 만납니다. (”Cannot find declaration to go to”)
이는 현재 프로젝
0
0
0
읽기모드
6M
Maven 외부 라이브러리 의존성 관리
개요
Maven은 소스코드 빌드를 돕는 도구이다. 그런데 소스코드는 우리가 직접 개발하는 것 외에 수 많은 외부 라이브러리에 의존한다. 따라서 Maven이 빌드 도구로서 수행하는 중요한 역할 중 하나는 우리 프로젝트에서 의존하는
0
0
0
읽기모드
6M
개발일기: 몇 줄의 명세 뒤에
첫 작업을 마치고 릴리즈 했다. 두 번째 작업이다. 두루뭉술한 문장들로 작업 명세가 몇 줄 적혀져 있다. 몇 줄의 문장 뒤에는 내가 알아야 할 수 많은 사실 들이 숨겨져 있을 거다.
프로젝트를 연거푸 두 개 클론 받는다. 둘이 뭔
0
0
0
읽기모드
6M
개발일기: 불편함이 주는 깊은 이해
항상 스프링부트 이니셜라이저로 프로젝트를 생성하고 인텔리제이로 빌드 그리고 실행하면 되었는데 그렇지 않은 프로젝트를 만나니 사소한 것 하나하나가 막힌다.
내가 자바를 좋아하는 개인적인 이유는 라이브러리 코드 속으로 들어가 인터페이
0
0
0
읽기모드
6M
개발일기: 인터페이스 먼저 확인하기
협력하는 서비스 간에 문제가 생겼을 때 인터페이스를 먼저 확인해서 어느 쪽 문제인지 확인하는게 서로에게 좋음을 다시 한번 느낀다.
네탓 내탓을 가른다기 보다 불필요하게 두 협력자 모두가 내부 구현을 살펴보고 있는 건 리소스 낭비이
0
0
0
읽기모드
6M
Git | 브랜치에서 안전하게 작업하고 머지하기
분산형 버전관리 시스템인 Git을 활용하면 제품 코드의 변경사항을 안정적이고 효율적으로 관리할 수 있습니다. 이 글은 누구나 쉽게 Git 초기 설정부터 브랜치를 활용한 기능 개발과 테스트, 머지까지 일련의 절차를 수행할 수 있도록
0
0
0
읽기모드
6M
SHA256 해시 결과가 달라요?
서비스에서 생성한 해시(SHA256) 계산 결과와 다른 범용 도구를 활용한 결과가 다르다는 컴플레인이 들어왔습니다. 원인을 분석해 보니 사람이 보기에는 똑같은 값이지만 컴퓨터가 값을 어떤 타입으로 다루냐에 따라 계산 결과가 달라지
0
0
0
읽기모드
6M
즐거운 프로그래밍 순간들
Image by Gerd Altmann from Pixabay
‘프로그래밍이 즐거운가?’라는 질문에 애석하게도 고통스러운 순간들이 먼저 떠올랐다. 그러나 프로그래밍에는 괴로움과 즐거움이 교묘하게 썩여있는 것 같다. 그래서 프로그래
0
0
0
읽기모드
6M
사람이 아닌 다른 것이 목적이 될때
Image by Gerd Altmann from Pixabay
“내가 생각하는 사람에 대한 오너십은 사람을 종 처럼 소유해서 마음대로 조종하는 것을 의미하지 않는다. 대신 그 사람이 제품 처럼, 조직처럼 성공하길 바란다. 그래서
0
0
2
읽기모드
6M
고통스러운 프로그래밍 순간들
Image by János Bencs from Pixabay
프로그래밍이 재미있는지와 관련된 토론이 커뮤니티에 있는 걸 보면서 나는 어떤지 자문해 보게 되었다. 순간 떠오른 생각은 “프로그래밍이 재미있다고 한 마디로 표현하기는 힘
0
0
0
읽기모드
6M
OWNERSHIP 가지고 회사 다니기
Image by Mediamodifier from Pixabay
회사를 다니며 경험할 수 있는 오너십에 대해 생각해 보게 된다.
오너십(Ownership)
무언인가 내가 책임질 내 소유라 여겨지면 나의 말과 행동은 그렇지 않을 때
0
0
0
읽기모드
7M
처음 만난 코드의 장벽
Image by goonerua on Freepik
이직하고 새 회사의 제품 코드를 처음 마주한다. 처음이라 안그래도 낯선데 코드 이해를 더욱 어렵게 만드는 걸림돌들이 있다. 기록해 뒀다가 내가 자리를 잡게 되면 이것들은 꼭 신경
0
0
0
읽기모드
7M
직장인 마인드
Image by Clker-Free-Vector-Images from Pixabay
지나치게 이상적인 생각에 빠지면 진흙탕 같은 직장의 현실은 밟고 싶지 않은 마음이 강렬하게 든다. 그럴 때 이런 마인드가 필요한 것 같다.
네가
0
0
0
읽기모드
7M
수습일기 #1 : 내 커리어 어디로
이방인
새 회사 첫 출근. 허둥지둥 회사 앞까지 겨우 갔다. 배가 고플 것 같아 김밥 한 줄을 우겨넣고, 엘레베이터를 기다린다. 이상한 느낌이 들어 고개를 돌려보니 모두 엘레베이터를 타려고 길게 한 줄로 서 있는데 나 혼자...
0
0
0
읽기모드
7M
이직 : 새로운 회사의 명함 EP.11
Image by Oli Götting from Pixabay
새 회사에서 명함에 새길 글귀를 보내달라고 한다. 무엇을 하면 좋을지 고민하다가 함께자라기 책에서 본 문구 (What's the simplest thing that co
0
0
0
읽기모드
7M
이직 : B2B 회사에서 메마르지 않기 EP.10
Image by Joe from Pixabay
그간 내게 아무런 감흥을 주지 않던 B2B(Business to Business)란 단어에서 어떤 감정을 느낀다. 나는 새로운 곳에서 기업이 필요로 하는 제품을 만들 것이다. 기업이
0
0
0
읽기모드
7M
이직 : 이 기술을 사용해도 될까? EP.9
Image by picjumbo_com from Pixabay
새 회사 입사를 앞두고 이런 고민이 있었다.
이런 기술을 사용하는 일을 하는 것이 앞으로 나에게 도움이 될 것인가?
생각해 보면 어떤 기술을 사용하는 것이 나의 목표
0
0
0
읽기모드
7M
이직 : 수습 여행 EP.8
Image by valeska salgado from Pixabay
정말 빡빡하게 시간을 사용한 것 같다. 면접에서 “퇴사하고 쉬면서 뭐 하셨나요?”라는 질문을 자주 받았는데 하루도 쉰적이 없다는 말로 답변을 시작하곤 했다. 회사
0
0
0
읽기모드
7M
이직 : 확실한 것 한 가지 EP.7
Image by Janno Nivergall from Pixabay
피벗팅할 때인가?
스타트업에는 피벗팅이란 개념이 있다. 밀고 나가던 서비스가 가망이 없다는 판단이 서면, 기존 서비스를 접고 새로운 서비스를 시장에 내놓아 회사
0
0
0
읽기모드
7M
이직 : 잠재력 이력서의 결과 EP.6
Image by Horst Schwalm from Pixabay
잠재력 이력서
구직 활동을 통해 나에 대해 알게된 것도 있지만 회사들이 지금의 나를 어떻게 생각하는지에 대해서도 알게 된 것 같다. 나는 이번 구직 활동에서 다소 도
0
0
0
읽기모드
7M
이직 : 우리 아들 사회 부적응자 아니야? EP.5
Image by Grey Yoon from Pixabay
우리 아들 사회 부적응자 아니야?
어머니께 내 이직 소식을 알렸을 때 나온 첫 반응이다. 왜 또 이직을 하냐 회사에 적응을 못했냐 등등 걱정이 태산이다. 40년 가까이 한
0
0
0
읽기모드
7M
이직 : 내가 원하는 회사 EP.4
Image by VĂN HỒNG PHÚC BÙI from Pixabay
지난 구직 과정은 나를 알아가는 소중한 시간이었다. 면접에서는 나를 끊임없이 꺼내어 설명해야 했기에 흐릿하게 가지고 있던 나의 상황과 나의 생각들을 또렷하게
0
0
0
읽기모드
7M
이직 : 연봉협상 EP.3
Image by Catkin from Pixabay
합격한 회사에서 연봉협상 기초 자료를 보내달라고 한다. 2022년 근로소득원천징수영수증과 희망연봉을 보내달라고.
‘저도 회사 연봉 테이블을 받고 싶습니다’라고 말하고 싶지만 혼
0
0
0
읽기모드
7M
이직 : 최종 합격 소식을 받은 날 EP.2
최종 합격 소식을 받았다. 돌아보니 어느덧 회사를 나온지 6개월이 되어간다. 첫 3개월은 과거에 사용한 기술들을 정돈해서 더 깊이 공부하고, 포트폴리오가 될 만한 오픈소스 프로젝트의 첫 버전을 완성했다. 그리고 이력서를 정리하고
0
0
0
읽기모드
7M
이직 : 헤어지면 그만인 회사 EP.1
Image by Steve Buissinne from Pixabay
새로운 회사 입사를 1주일 앞두고 있다. 이런 표현이 적절한지 모르겠지만 결혼을 앞둔 신부의 마음 같다는 생각이 든다. 입사하면 파라다이스가 펼쳐질까? 좋은 동료
0
0
0
읽기모드
7M
인프콘 2023 후기 - 듣고 배우고 느끼고
전날 아이들과 하루종일 수영장에서 놀았던 탓인지 피곤한 몸을 이끌고 아침 해를 보며 용산행 기차를 탓다. 저녁에 돌아오는 기차 안에 나는 거의 녹초가 되어 있었던 것 같다. 그러나 오늘 듣고 배운 것들이 내 인생에 씨앗으로 뿌려져
0
0
2
읽기모드
8M
면접에서 제대로 답변하지 못한, 좋은 질문들
면접을 보고 왔습니다. 면접을 준비하면서 필수적으로 나올 법한 질문에 대한 답변만 미리 정리해 보고 면접에 입했습니다. 나머지는 그때그때 생각나는 것들을 답한다는 마음으로 들어갔는데 몇몇 질문은 진짜 내가 아닌 전혀 엉뚱한 답변을
0
0
1
읽기모드
8M
면접을 준비하며 간단한 질문에 답하기
면접을 준비하면서 필수적으로 나올 법한 질문에 대한 생각을 미리 정리해 보았습니다. 이외의 질문들은 그때 그때 즉흥적으로 대답할 수 있어야 하는데 잘할 수 있겠죠?
자기소개
이력서 제목을 뭘로 하면 좋을지 고민해 보다가 ‘신뢰를
0
0
0
읽기모드
9M
구직 1차전 회고
이력서를 공유하고 몇몇 회사에서 연락이 왔다. 대화를 나누고 지원하지 않은 회사도 있고 채용 프로세스를 진행하고 탈락한 회사도 있다. 도전에는 부끄러움, 고통 같은 것들이 동반하는 것 같다. 그런데 배움 역시 뒤따른다. 아마 제자
0
0
0
읽기모드
9M
당근마켓 밋업 다녀와서
듣고, 담아오기
SRE와 관련된 일을 하지 않지만 뭐라도 하나 듣고, 담아 오고 싶은 마음에 참석하게 되었다. 이런 행사에 참여하면 대게 잘 모르는 기술 이야기지만 업계에서 이런 걸 쓰는 구나. 이런 용어가 있구나 등을 느끼며 미
0
0
1
읽기모드
10M
Fireball: 고성능 대용량 파일 전송 오픈소스 프로젝트
🚩 GitHub Link
Overview
Fireball 프로젝트는 대용량 파일을 빠르게 전송할 수 있는 작은 독립 서비스를 제공합니다. 어떤 언어, 어떤 프레임워크를 사용하든지 간단한 HTTP 요청을 통해 원격지와 파일을 빠르
0
0
0
읽기모드
10M
Fireball: High-performance large file transfer open source project
🚩 GitHub Link
Overview
The Fireball project provides a small, independent service for quickly transferring large files. No matt
0
0
0
읽기모드
10M
비지니스 로직과 오케스트레이션 역할 분리하기
단위테스트 책에서 단일책임원칙을 적용하는 사례로 비지니스 로직과 오케스트레이션 역할을 분리하는 케이스를 설명해 준다. 오케스트레이션 이란 비지니스 로직을 수행하면서 협력하는 객체들과 커뮤니케이션하는 역할을 하는 코드를 말한다.
0
0
0
읽기모드
10M
이력서, '단순함'과 '구체적' 사이의 절묘한 경계
이력서를 쓰면서 도움이 될 것 같아 '한 문장으로 말하라'는 책을 읽고 있다. 책에서 단순함을 강조하는 KISS (Keep It Simple, Stupid!)라는 원칙 대신, KISS (Keep it Simple and Speci
0
0
0
읽기모드
10M
개발 주기에 통합된 테스트
“테스트 코드가 개발 주기에 통합되어 있어야 한다. 실제로 사용되는 테스트만 가치가 있다. 사용되지 않는 테스트는 의미가 없다.” - 단위테스트 (저자, 블라디미르 코리코프) -
이게 생각보다 잘 실천되지 않았던 것 같다. 개
0
0
0
읽기모드
10M
개발일기 #124 : 도커와 씨름
오늘 한 작업 목록이다.
도커 Java 애플리케이선 이미지 만들기
도커 이미지 컨테이너로 실행하기
도커 컴포즈로 컨테이너 실행하기
이전 회사에서 도커를 썻으면 운영 서버 하나씩 늘릴 때 마다 하던 작업을 안해도 되었겠다. 쿠버네
0
0
0
읽기모드
10M
개발일기 #123 : Docker 재활용되는 삽질의 기쁨
1. Docker 재활용되는 삽질의 기쁨
도커 컨테이너 위에서 서비스를 띄우기 위해 이런 저런 삽질을 하고 있다. 처음 마주한 도커가 던져주는 사소한 문제 해결이 쉽지 않다. 그래도 감사한 것은 이런 삽질을 통해 얻은 경험과 결과
0
0
0
읽기모드
11M
개발일기 #122 : 큰 목표를 향한 매일의 동적 계획과 지속
큰 목표를 향한 매일의 동적 계획과 지속
해야할 일들의 목록을 틈틈히 만들고 그것에서 안정감을 얻곤 했던 것 같다. 신기하게도 계획만 보고 어떤 안정감을 얻기도 하고, 반대로 큰 그림이 그려지지 않을 때는 불안해 하기도 한다. 그
0
0
0
읽기모드
11M
가치를 위해 행동하는 사람들 (클라우드 유랑단 대전 후기)
클라우드 유랑단 대전 세미나를 다녀왔다. 가까운 곳에서 열리는 기술 관련 세미나라 가벼운 마음으로 참석했다. 출발하려고 네비를 찍었는데 1시간 가까이 걸린다는 사실을 알고 살짝 고민했지만, 그래도 약속한 거니까 출발했다. 돌아보니
0
0
0
읽기모드
11M
개발일기 #121 : 스파크 프로젝트, 오픈소스의 축복
스파크 프로젝트 이슈를 다시 읽어본다. 문제가 뭔지 제대로 이해하기 위해서다. 두 번째 읽으니 문제와 해결책이 정확히 이해가 된다. 지난번에는 이 프로젝트에서 문제를 약간 어설프게 해결했다고 생각했는데 그게 아니었다.
이 글(S
0
0
0
읽기모드
11M
개발일기 #120 : Readme
Readme
토이 프로젝트 Readme 파일에 대해 고민해 본다. 첫 단락에 이 프로젝트가 어떤 문제를 해결하는지 기술하면 가장 좋다고 생각된다. 대충 뭔가 하게는 만들었는데 무슨 문제를 해결하는지 정확히 모르겠다. 다시 돌아가야
0
0
0
읽기모드
11M
개발일기 #119 : 잘되고 있는 일을 바라보고 감사하자
잘되고 있는 일을 바라보고 감사하자
이 글(Appreciating Your Way to XP)을 읽고 정리합니다.
“절망은 변화를 막는다. 변화는 감정적인 에너지를 필요로 한다. 그래서 잘되고 있는 일을 찾고 감사하는 일에도 소홀
0
0
0
읽기모드
11M
개발일기 #118 : 방망이 깍던 노인
1. 좋은 테스트 코드
오늘 리팩토링을 하며 중간중간 어제 작성한 테스트 코드를 실행시켰다. 한 번은 코드를 고치고 테스트를 돌렸는데 성공하던 테스트가 실패했다. 확인해 보니 경로에 실수로 “././”이런 문자가 들어가 있었다.
0
0
2
읽기모드
11M
개발일기 #117 : 테스트 통과 시키기
1. 테스트 통과 시키기
파일 전송 서비스(토이 프로젝트)에 파일 업로드 기능을 추가했다. 코드가 단지 테스트를 통과했음을 표현하기 위해 커밋 메시지를 ‘Pass the file upload test case’ 처럼 작성해 보았다
0
0
0
읽기모드
11M
개발일기 #116 : 훨씬 느리게
1. 꼭 닮은 기술
빅데이터 병렬 처리를 돕는 스파크에 대한 책을 슥슥 읽고 있다. 책을 읽다보니 자바의 병렬 스트림이 생각난다. 둘이 무척 닮아 있다. 자바 병렬 스트림은 하나의 노드(컴퓨터) 안에서 CPU 코어를 병렬로 사용해
0
0
0
읽기모드
11M
피할 수 없는 클라우드 물결 (AWS Summit 2023 후기)
계획에 없었는데 AWS 서밋 둘째 날도 참석하게 되었다. 아무것도 준비해오지 않아 급히 서울에 숙소를 잡고 다이소에서 속옷과 양말을 구매했다. 티셔츠는 오늘 받은 굿즈로 해결. 하루 더 남길 잘했다고 생각한다.
진짜 원인이 뭐지?
0
0
0
읽기모드
11M
개발일기 #115 : 문제를 만나자 (AWS Summit 2023)
AWS 서밋을 다녀왔다. 접해본적 없는 낯선 것들이 스프링 캠프 때 보다 더 많았다. 저녁이 되어 오늘 들은 것들을 정리하다 보니 정말 많은 기술적인 지원들이 우리 앞에 펼쳐져 있다는 생각이 든다. 정말 점점 비지니스 가치를 만드
0
0
0
읽기모드
11M
개발일기 #114 : 아직은 마음대로 주무를 수 없는 HTTP
1. 아직은 마음대로 주무를 수 없는 HTTP
HTTP multipart 타입으로 파일을 보내면 TCP로 전송할 때 보다 훨씬 느렸다. 네트워크 패킷을 까서 보면 궁극적으로 데이터 전송률이 떨어졌다. 한 번에 보내는 데이터 크기도
0
0
0
읽기모드
11M
개발일기 #113 : 러닝커브만 넘어서면 단순해 진다 (feat. 첫 웹 API 개발 경험)
1. 러닝커브만 넘어서면 단순해 진다 (feat. 첫 웹 API 개발 경험)
파일 다운로드 클라이언트의 REST API를 구현해 코어 파일 클라이언트 모듈과 연결했다. 그리고 RestAssured를 사용해 통합 테스트를 작성해 보
0
0
0
읽기모드
11M
개발일기 #112 : 사용자가 되어보아야 안다
1. 사용자가 되어보아야 안다
사용자와 맞닿은 부분부터 구현했어야 했다. 거꾸로 하고 보니엉망이 되어 있다. 공급자 위주의 구현이 되어 사용이 편리하지 않다. 사용되지 않는 인터페이스들도 생각 보다 많이 만들어져 있어 유연성을 떨
0
0
0
읽기모드
11M
개발일기 #111 : HTTP라는 추상화된 표준의 힘
1. HTTP라는 추상화된 표준의 힘
TCP로 구현한 파일 서버-클라이언트를 HTTP로 감싸서 미들웨어 처럼 동작하게 구현하고 있다. 서비스를 HTTP로 한겹 감싸는 것만으로 다양한 도구들의 도움이 눈 앞에 펼쳐지는 것 같다. 직
0
0
0
읽기모드
11M
개발일기 #110 : 균형있는 테스트에 대한 엔지니어링 의견
단위 테스트(저자, 블라디미르 코리코프) 책을 조금씩 읽고 있다. 여기서 단위 테스트 스타일을 1)출력기반 테스트, 2)상태기반 테스트, 3)통신기반 테스트로 나눈다.
1. 3가지 단위 테스트 스타일
1) 출력기반 테스트는 간결하
0
0
0
읽기모드
11M
병렬 스트림(Parallel Stream)을 활용한 성능 향상
Sprint icons created by Freepik - Flaticon
Stream의 parallel() API를 사용하면 쉽게 병렬 작업을 구현할 수 있습니다. 병렬 스트림은 내부적으로 common ForkJoinPool을
0
0
0
읽기모드
11M
개발일기 #109 : 부하 테스트와 모니터링 시도
1. 부하 테스트
부하 테스트란 걸 처음 시도해 보았다. 일단은 내 컴퓨터에 있는 CPU 코어들을 풀로 활용해서 2048개의 클라이언트를 CompletableFuture를 사용해 최대한 동시 접속 처럼 되도록 시도해 보았다. 생각
0
0
0
읽기모드
11M
스프링 캠프 2023 후기
강의 전반적으로 모르는 용어, 기술들을 많이 접하게 되었다. 후기를 쓰고 싶었는데 그 날의 강의만 듣고 확실히 이해하지 못한 것들이 많아 후기를 블로그에 남기기가 곤란하다. 그래서 인상깊은 몇 가지만 기록으로 남겨본다.
1. 글로
0
0
0
읽기모드
11M
개발일기 #108 : 답변 받고 싶은 프레임 버리기
1. 상대적 복잡함
인프콘 이후로 오랜만에 코엑스에 다녀왔다. 서울이 너무 복잡하게 느껴졌다. 코엑스 안에 있는 테라로사 커피를 찾으며 미로에 갖힌 느낌, 밥을 먹는데도 커피를 마시는데도 길게 줄을 서야 했다. 오후 쯤 되니 복잡
0
0
0
읽기모드
11M
개발일기 #107 : 진짜 필요한 일인가?
1. 진짜 필요한 일인가?
파일 서버 응답 테스트를 하다가 저수준의 쓰기 함수는 8MB를 한번에 썻다는 결과를 주는데 TCP 송신 버퍼는 64KB인 걸 발견했다. 쓰기 함수가 TCP 송신 버퍼에 데이터를 쓰고 실제 버퍼에 기록한
0
0
0
읽기모드
11M
서버의 응답을 지연시키는 2가지 외부 요인
서버 프로그램을 개발하고 운영하다 보면 서버의 응답이 지연되는 문제를 만날 수 있습니다. 다양한 문제의 원인이 있을 수 있지만, 이 글에서는 서버 외부에서 발생하는 문제의 원인에 집중해 보려 합니다. 모든 설명은 TCP 프로토콜
0
0
0
읽기모드
11M
개발일기 #106 : 네트워크 프로그래밍에 대한 소소한 배움들
오늘 실험하고 배운 것들을 소소하게 기록해 봅니다.
1. 네트워크 프로그래밍
네티에서 FieRegion을 통해 네트워크로 파일 쓰기를 요청하면 최종적으로 sun.nio.ch.SocketDispatcher 클래스에서 native
0
0
0
읽기모드
11M
개발일기 #105 : 지금부터 'Born to Global'
1. Born to Global
세계적인 네트워크 프로그래머, 테스트 엔지니어가 되고 싶다는 꿈이 생겼다. 만들고 있는 코드의 주석이나 커밋 메시지를 영어로 작성하기 시작하는 것 부터 해야겠다. 예전에 창업 교육을 들으며 Born
0
0
1
읽기모드
11M
대용량 파일 서버 성능 개선기 (1) : 작은 청크로 분할 전송
시작하며
네티(Netty) 프레임워크를 사용해 대용량 파일을 처리할 수 있는 서버를 구현했습니다. 그리고 클라이언트에서 대용량 파일(1GB) 패치를 요청하고 패치된 파일이 로컬에 저장되기 까지의 시간을 측정함으로 서버의 성능을 측
0
0
7
읽기모드
11M
개발일기 #104 : 선언적으로 일하기
1. 유창한(fluent) 코드
Lombok의 Accessors 어노테이션의 fluent 속성을 사용해서 Getter, Setter 생성을 최적화 할 수 있었다. fluent 속성을 true로 설정하면 some이라는 멤버의 get
0
0
1
읽기모드
1y
UDP(Message oriented) vs TCP (Stream oriented)
UDP와 TCP 프로토콜은 여러가지 차이점이 있지만 프로그래밍을 할 때 필수적으로 이해해야 할 숨겨진 개념이 있습니다. 그것은 UDP는 메시지를 기반(Message-oriented)한 프로토콜이고 TCP는 스트림을 기반(Strea
0
0
0
읽기모드
1y
개발일기 #103 : 더 나은 코드로 개선
1. 더 나은 코드로 개선
오늘은 어제 설계 컨셉 검증을 위해 급히 작성한 파일 패치 코드를 정리했다. 지금은 파일 패치라는 하나의 요청만 처리하지만 추후 확장이 용이하도록 구조를 잡는데 집중했다. 잘 마무리.
2. 걸으며 생각하
0
0
1
읽기모드
About
Badge
Contact
Activity
Terms of service
Privacy Policy