Pair Programming을 위한 준비 사항

간만에 짝 프로그래밍(Pair Programming)을 해보고 있다. (이후부터는 그냥 페어 프로그래밍) 이 방법을 에자일과 XP 책들을 읽으면서 “아, 이런 방법도 있구나~” 하고 배웠다.  그러고 보면 이 시절에 페어 프로그래밍과 TDD를 포함해 새로운 지식들이 넘쳐나던 시절이었다.  어줍잖은 자신감으로 진행했던 프로젝트의 실패와 더불어 회사의 자금 사정 악화로 경제적으로 빈궁한 시절이었다. 하지만 실패를 곱씹는 과정에서 챙긴 지적 호기심은 이후에 …

Continue reading ‘Pair Programming을 위한 준비 사항’ »

코드 리뷰의 시작에 임하는 자세

코드 리뷰를 어떻게 시작할 때 뭘 생각해야 하는지에 대한 재미있는 글이 있어서 짧게 기록해둔다. Building a better code review process 글의 제목은 더 좋은 코드 리뷰에 대해 이야기를 하지만 것보다는 리뷰를 할 때 코드보다 더 신경써야 할 것들이 뭔지에 대한 이야기다.  코드 리뷰에서 우리가 주로 신경쓰는 부분이 “코드의 품질”이다.  사실 나도 다른 사람의 코드를 리뷰할 …

Continue reading ‘코드 리뷰의 시작에 임하는 자세’ »

도대체 뭐가 RESTful 이라는건가?

요즘에 웹에서 API 기능을 개발한다고 하면 RESTful 이라는 단어를 많이 듣게 된다. 특히 “Single Page WebApp(웹앱)”이 웹 기능을 개발하는 주류 방법이 되면서 더욱 자주 귀에 들린다.  여기에서 그럼 웹앱이라는 것이 뭔지 우선 짚어보고 가보자.  이걸 알아야지 왜 API가 필요한 것이며 그 중에서도 RESTful을 이야기하는지를 알 수 있을 것 같으니 말이다. 웹앱은 뭔가요? 위키페디아에서 이야기하는 웹앱은 …

Continue reading ‘도대체 뭐가 RESTful 이라는건가?’ »

개발자의 missing commitments에 대해.

한다고 한것들(commitments)을 못했을 때(missing)의 것들을 어떻게 받아들여야 할지 애매해서 좀 찾아봤는데 재미있는 링크를 찾았다. Agile team missing commitments regularly and complaining about no trust 어떻게 보면 개발자들이 똘똘 뭉쳐서 에자일이라는 것을 해석해버리면 이런 식도 될 수 있겠구나 하는 생각도 든다. 질문의 요지는 스프린트 4개를 하는 동안 개발자들이 40~60% 정도를 빵구를 내고 있다. 하지만 MVP를 만들어낼때까지 …

Continue reading ‘개발자의 missing commitments에 대해.’ »

.gitignore 파일을 깔끔하게~

협업하는 다른 친구에게 pull request를 보냈다가 알게된 팁인데 꿀팁인 것 같아서 정리해둔다. 보통 .gitignore 파일은 프로젝트 빌드 혹은 작업 과정에서 생기는 부산물들을 굳이 git에 포함시킬 필요가 없는 파일들 혹은 디렉토리들을 제외시키기 위해서 사용된다. 이런 파일들 가운데 내가 종종 포함시키는 패턴들이 IDE와 관련된 파일들이었다.  하지만 IDE라는건 개인적인 취향에 따라 다름이 있다. 사람마다 서로 다른 IDE에 대한 …

Continue reading ‘.gitignore 파일을 깔끔하게~’ »

Spring Data JPA를 활용한 DAO를 바꿔보자.

부트 이전에 스프링에서 데이터베이스를 그래도 다른 사람이 쓰는 만큼 쓸려면 MyBatis를 써줘야했다. MyBatis를 한번이라도 써본 사람이라면 알겠지만 복잡하다. 스프링 XML 설정의 복잡도에 MyBatis의 복잡도를 더하면 상당히 헬 수준으로 올라간다. 단순 목록 하나만 가져오는데 MyBatis를 쓰는건 형식주의에 빠진 불합리의 최상급이었다. 되려 JDBC를 가져다가 prepareStatement에 Bind 변수만 사용하는 것이 오히려 손쉽게 직관적일 수 있다. 글을 읽는 분들중에 Bind …

Continue reading ‘Spring Data JPA를 활용한 DAO를 바꿔보자.’ »

5월에 읽은 책 – 김훈 작가의 “라면을 끓이며”

한달에 만화책과 무협지를 빼고 뭐라도 두 권은 읽자라고 시작해서 처음으로 읽기를 마친 책.  읽기를 시작한지는 한달쯤 되었던 것 같긴 하지만 최근들어서 텍스트를 읽는 것이 어렵게 다가온 적이 요즘만하게 없었던 것 같다. 오래 걸리고 또 의미를 삼키기 어렵다.   굳이 독후 감상문을 적을 필요는 없겠다. 본래 스스로 그러한 것들을 향하여 나는 오랫동안 중언부언하였다. 나는 쓸 수 …

Continue reading ‘5월에 읽은 책 – 김훈 작가의 “라면을 끓이며”’ »

Amazing Lamda

Java 8에서 제대로 지원하는 stream과 람다(lamda)를 섞어서 쓰면 좋은데 람다가 코드를 어느 수준까지 줄여주는지를 한번 살펴보니 무시무시하다라는 생각이 든다. 이걸 람다를 적용해서 고치면… 기존 자바의 인터페이스를 사용해서 불필요한 라인들이 딱 한줄의 return문으로 정리된다. 이걸 해석하는데 좀 시간이 필요하긴 한데, 얻을 수 있는게 참 많을 것 같다. 특히나 Interface를 활용해서 DI 기법으로 코드를 작성하는 방식이 더욱 …

Continue reading ‘Amazing Lamda’ »

미국과 다르지 않은 한국 개발자 환경?

페북에 개발자의 한국 상황과 미국 상황을 비교한 슬라이드가 올라와서 또 열심히 까는구나 하는 생각이 들어서 봤더니, 왠걸?  이 친구는 많이 다르지 않다고 이야기를 하네. 헐… 살짝 이력을 살펴보니 LG좀 다니다가 라인좀 다니다가 MS로 이직한 친구네!! 좋은 회사(?)들을 잘 거쳐서 성공적으로 미쿡 회사에 안착을 한 모양이다.  근데 좋은 대기업만 다녀서 그런가 한국의 다른 개발자들에 대해서 잘 …

Continue reading ‘미국과 다르지 않은 한국 개발자 환경?’ »

Maven을 이용해서 신규 프로젝트 만들기

한땀한땀 손으로 Maven 프로젝트를 만드는 것도 의미있는 일이지만 귀찮다. 와 같은 형태로 잡아주면 된다. 최근 개발은 Spring Boot를 많이 이용하기 때문에 여기에서 주로 쓸만한 archetype들을 나열해보면 maven-archetype-quickstart spring-boot-sample-simple-archetype spring-boot-sample-data-jpa-archetype spring-boot-sample-actuator-log4j-archetype Spring에서 사용할 수 있는 전체 Archetype 목록은 여기에서 확인 가능하다.  다만 Spring 기반으로 프로젝트를 생성시킬려면 기본 archetypeArtifactId 이외에 archetypeGroupId=org.springframework.boot 값을 추가로 줘야한다. 가장 대표적인 API …

Continue reading ‘Maven을 이용해서 신규 프로젝트 만들기’ »