기술을 기술하다

기술을 기술하다

sogoagain의 기술 블로그

극단(extreme)으로 가기 위한 철학
‘익스트림 프로그래밍 : 변화를 포용하라”를 읽고 켄트 벡, 신시아 안드레스. 익스트림 프로그래밍(Extreme Programming). 김창준 옮김. 인사이트, 2006. 6월에 읽기 시작한 ‘익스트림 프로그래밍’을 두 달이 지난 이제서야 다 읽었다. 한 페이지마다 깊은 내용을 다루고 있어 책 읽는 속도를 올리기 쉽지 않았다. 읽을 때마다 나도 모르게 생각에 잠기곤 했는데 그 덕분에 회사를 비롯하여 나를 둘러싸고 있는 환경과 그 속에 있는 나에 대한 깊은 고민을 할 수 있었다. ‘어떻게 하면 더 나은 직장 생활을 할 수 있...
개발자의 아침
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485'따르릉, 따르릉' 알람 소리다;아침 알람은 오전 6시에 시작되어 15분 간격으로 총 세 번 울린다;아침에 알람이 세 번 울리는 동안 아래를 반복한다; 첫 번재 알람이라면: 알람을 끄고 눈을 감는다; ...
삶에 적용해야 할 견습 과정 패턴
우리는 멘토가 필요해요.여러분은 자신의 커리어와 관련된 멘토가 있으신가요? 현재 자신이 처한 상황을 들어주고 앞으로 나아가야 할 ‘길’을 제시해주는 멘토가 지금 있으시다면 정말 축복받으셨다고 말씀드리고 싶습니다. 주변에 훌륭하신 분들은 쉽게 찾을 수 있지만, 나의 이야기에 진심으로 귀 기울여주는 사람을 만나기는 쉽지 않으니까요. 인생을 살면서 수없이 새롭고 힘든 상황을 마주하게 됩니다. 개발자의 삶 역시 마찬가지죠. 저는 새롭고 어려운 상황을 마주할 때면 ‘어떻게 행동해야 최선일까?’라는 생각을 합니다. 혼자 나름대로 분석도 ...
[실수노트] JavaScript에서 동일한 이벤트 리스너는 단 한 번만 등록하자
상황어느 날, 동료 직원분께서 시스템을 이용하는데 데이터 조회가 가끔가다 한 번씩 이상하다고 제게 문의를 해왔습니다. 어떤 문제가 있었을까요? 데이터 조회는 데이터들이 있는 테이블에서 한 행을 클릭해 나타나는 모달창을 통해 이루어졌습니다. 동료분께서 조회를 원하는 데이터를 테이블에서 클릭했는데, 간혹 클릭한 데이터가 아닌 다른 데이터가 출력된다는 것이었습니다. 그뿐만 아니라 어떨 때는 아예 모달 창이 뜨지도 않았다고 하더라고요. 제일 큰 문제는 이와 같은 상황이 항상 발생하는 것이 아니라 ‘간혹’가다 발생한다는 것이었습니다. ...
레거시 코드를 점진적으로 개선한 경험
프로젝트를 이어받다.저는 작년(2019년) 6월 말에 새로운 회사로 이직하였습니다. 첫 번째로 받은 업무는 새롭게 개발 중이던 관리자용 시스템을 이어받아 완성 시키는 것이었습니다. 기존에 개발자 한 분께서 맡아 개발해왔지만, 관리자용 시스템이라 우선순위가 다른 프로젝트들보다 낮아 꽤 오랜 기간 미완성 상태로 남겨졌던 프로젝트였습니다. 그러나, 이미 기존 시스템 기반으로 어느 정도 구현이 된 상태였고 실제 배포되어 일부 기능들은 업무 담당자들이 사용하고 있었습니다. 그렇기에 해당 프로젝트는 이미 작성된 코드량이 꽤 되었죠. 이 ...
삶에 애자일 도입하기
김창준님의 ‘함께 자라기 - 애자일로 가는 길’을 읽고애자일, 잡힐 듯 잡히지 않는 것대학 시절 ‘동양철학’을 다루는 강의를 수강한 적이 있습니다. 전체적으로 굉장히 어려운 내용이었지만 그중에서도 특히 ‘도가사상’이 기억에 많이 남습니다. 도를 설명하는 부분이 난해했기 때문입니다. 호접지몽(나비 꿈)으로 유명한 장자가 도란 어디에 있는 것인지 묻는 동곽자라는 사람의 질문에 이렇게 말했다고 합니다. “도는 있지 않은 곳이 없다. 땅강아지나 개미에도 돌피나 피 따위에도 기왓장이나 벽돌 조각에도 똥이나 오줌 속에도 있다.”<지...
2019년 회고
조금 늦어진 회고2020년 1월 11일인 지금에서야 블로그에 회고 글을 작성하게 되었습니다. 작년 말에 많은 분들이 작성한 회고 글을 보면서 자극과 도움을 동시에 얻을 수 있었습니다. 사실 작년 한 해를 돌아보는 시간과 올해의 계획을 작성하는 시간을 개인적으로 가지긴 했습니다. 블로그에 회고 글을 작성할까도 생각해보았지만 부끄러움이 밀려와 블로그 작성은 포기했습니다. 그런데 결국 저는 회고 글을 작성하고 있네요. 벌써 2020년을 맞이한 지 10일이 지났습니다. 한 해의 비율로 따지면 대략 1/36 정도를 지나온 셈입니다. 이...
[실수노트] 캐싱된 메서드는 변경 불가능한(Immutable) 객체를 반환토록 하자
상황호출될 때마다 같은 값을 반환할 것으로 기대되는 Service의 한 메서드를 캐싱 처리 하였다. 캐싱 처리한 메서드는 카테고리 데이터를 DB에서 가져와 리스트 형태로 반환하는 메서드였다. 카테고리 데이터가 자주 바뀌지 않아 긴시간 동안 같은 결과값을 반환하는데 매번 DB를 조회하는 것은 리소스를 낭비하는 것이기에 캐싱 처리를 하였다. 그런데, 배포를 하고보니 데이터 출력이 이상했다. 특정 화면에서 카테고리를 조회할 때 새로운 카테고리가 생기고 조회를 계속 할수록 새롭게 생긴 카테고리는 중복되어 출력되었다. 여기서 끝이 아니...
의식적인 연습에 기반한 나의 앞으로의 학습
무언가 문제가 생긴 나의 학습 방법2019년 목표: 매일 5분 학습하기학생 신분을 벗어나 사회인으로 하루하루 살아가던 어느날, 뒤 돌아보니 나의 상태는 그대로인 것 같은데 시간은 훌쩍 지나가 버린 것 같은 느낌이 들었다. 이에 대해 위기감이 느껴진 나는 2019년 1월 1일, 새해를 맞이하여 ‘매일 학습하기’를 2019년의 목표로 삼았다. 정확히는 ‘매일 5분 이상 학습하기’ 였다. 목표로한 학습 시간이 5분으로 매우 짧은데, 이렇게 짧은 시간을 목표로 설정한 이유는 ‘학습의 양’보다 ‘학습의 지속’에 초점을 맞췄기 때문이다....
AWS도 Setter를 사용하지 않는다
AWS도 Setter를 사용하지 않는다.AWS SDK 버전을 ‘1.11.x’에서 ‘2.x’로최근 회사 프로젝트의 AWS SDK(Java) 버전을 ‘1.11.x’에서 ‘2.x’으로 올리는 작업을 진행하였다.사내 시스템에 다량의 Email을 발송하는 기능이 있는데 실행 시간이 오래 걸렸기 때문에 개선이 필요하였다. 메일 발송 기능은 AWS SES 서비스를 사용하고 있었고 실행 시간을 단축하고자 메일 발송 로직 전체를 비동기로 변경하려고 알아보던 중 AWS SDK 버전이 2.x로 들어서면서 Nonblocking I/O를 지원하는 것...
avatar
sogoagain
continuous improvement