우테코
-
[칵테일픽] SonarQube를 통해 정적분석을 적용해보자Project 2020. 11. 7. 22:19
우아한테크코스에서 진행 중인 팀 프로젝트인 칵테일픽 서비스를 운영하며 생긴 에피소드를 다룬 글입니다. 정적 분석이란 무엇인가 소프트웨어를 동작시키기 위해 뭐가 필요할까? 당연한 대답으로 소프트웨어가 필요하겠지. 그렇다면 소프트웨어를 잘 동작시키기 위해서는 뭐가 필요할까? 유연한 설계. 요구사항에 충족한 구현. 빠짐없는 테스트. 모두 맞다. 우리는 개발자로서 객체지향에 적합한 설계를 함으로 유연한 설계를 이뤄낼 수 있다. 또한 기획자와 충분히 협업을 하여 요구사항을 잘 뽑아내어 구현할 수 있다. 그리고 JUnit과 같은 테스트 프레임워크의 도움을 받아 테스트를 운영할 수 있다. 이렇게 개발자의 노력과 툴의 도움을 받아 잘 돌아가는 소프트웨어를 만들었다면 더 이상의 개선은 없을까? 아니다. 비록 기능적으로는..
-
[프로그래머의 길, 멘토에게 묻다] - 09Notes/Book 2020. 9. 25. 20:48
앞으로의 포스팅은 책에서 소개하는 패턴 언어 중 마음에 드는 구절을 소개하는 방식이 될 것이다. 바닥을 쓸어라 상황 당신은 프로젝트에 새로 합류한 견습생이다. 문제 당신은 팀 내에서 자리잡지 못했고, 팀은 당신에게 확신이 없다. 당신은 팀의 업무에 기여하면서 신뢰를 얻고 장인의 눈에 드는 방법을 찾고 싶다. 해결책 단순하면서도 매력이 없지만 반드시 해야 하는 일에 자원하라. 꼭 훌륭하게 해낼 필요 없는 일이라도 당신이 훌륭하게 해낸다는 것을 보임으로써 팀의 성공에 한걸음 더 빠르게 기여할 수 있다. 물론 어떤 프로젝트에서라도, 재미없어 보이는 일을 대충 넘어간다면 나중에 그 부분이 실제로는 아주 중요한 것으로 드러나면서 문제를 일으킬 수 있다. 그렇기에 간단한 일이라도 훌륭하게 해내는 점은 중요하다. 내..
-
[SUPP] 페어와의 협업 맛을 돋우는 애피타이저 - 3Project 2020. 9. 20. 23:20
우아한 테크코스 2기 과정 중 크루들과 제작한 서비스인 SUPP에 대한 글입니다. 나를 비롯하여 또링, 스티치, 알트 그리고 코즈까지 5명이 모여 SUPP 개발 팀이 꾸려지고 기획과 개발을 진행했다. 이번 글에서는 배포 과정과 서비스 공개 그리고 그 이후의 순간들에 대해 알아보자. 배포의 순간 배포.... 레벨 3 기간 동안 칵테일픽 프로젝트를 진행하면서 배포를 경험했으나 아직도 어려운 그 이름..! 당시 SUPP을 구현할 때 배포는 더더욱 미지의 세계였고 공부하고 싶은 마음만 그득한 상태였다. 배포 과정을 시작하게 된 계기는 크루들에게 서비스를 공개할 데모 날이 잡혔기 때문이었다. 바로 6월 17일 테코톡 시간이었다(테코톡은 우테코 크루들이 주제를 정해 10분 정도 발표하는 시간이다) 시간은 한 주 정..
-
Java의 Error와 Exception 그리고 예외처리 전략Language/Java 2020. 9. 17. 07:27
우아한테크코스(이하 우테코) 레벨 1 복습을 위한 글입니다. 자바는 오류가 발생하거나 발생할 여지가 있는 여러 상황에 대한 예외를 만들어두었습니다. 우리에게 익숙한 IllegalArgumentException을 비롯해 원인을 찾기 힘든 NullPointerException도 있습니다. 또한 파일 처리를 하다 보면 발생하기도 하는 IOException도 있구요. 이번 글에서는 이런 예외에 대해 알아보도록 하겠습니다. 오류와 예외란 예외를 알아보기 위해서는 우선 오류와 예외를 구분할 필요가 있습니다. 오류(Error)는 시스템이 종료되어야 할 수준의 상황과 같이 수습할 수 없는 심각한 문제를 의미합니다. 개발자가 미리 예측하여 방지할 수 없습니다. 반면 예외(Exception)는 개발자가 구현한 로직에서 발..
-
[SUPP] 페어와의 협업 맛을 돋우는 애피타이저 - 2Project 2020. 9. 8. 23:21
우아한 테크코스 2기 과정 중 크루들과 제작한 서비스인 SUPP에 대한 글입니다. 나를 비롯하여 또링, 스티치, 알트 그리고 코즈까지 5명이 모여 SUPP 개발 팀이 꾸려지고 대략적인 서비스 컨셉이 나왔다. 이번 글에서는 기획과 개발 과정에 대해 알아보자. 기획의 순간 지금까지의 코어 아이디어는 "크롬 익스텐션을 이용해서 우테코 교육 사이트의 돔을 조작해서 페어인 크루의 정보를 보여주자"이다. 그렇다면 우리는 어떤 정보를 보여줄 것이며 어떻게 정보를 얻을 것인가. 이에 대해서는 팀원 모두 고민과 아이디어가 많았다. 3월 7일, 팀원들과의 회의에서 이 내용은 구체화되었다. 우리는 우테코를 시작하고 근 한 달간 수행해왔던 페어 프로그래밍의 속성을 분석하고, 어떤 질문들이 필요한지 추려냈다. 페어를 하며 불편..
-
[SUPP] 페어와의 협업 맛을 돋우는 애피타이저 - 1Project 2020. 9. 2. 14:09
우아한 테크코스 2기 과정 중 크루들과 제작한 서비스인 SUPP에 대한 글입니다. 시작하며 우아한 테크코스(이하 우테코)는 협업의 정수를 맛볼 수 있는 공간이다. 레벨 1과 2 기간 동안 매일 진행되는 페어 프로그래밍을 통해 서로의 개발실력을 키워간다. 페어 프로그래밍을 모르는 분들을 위해 잠시 설명을 덧붙이겠다. 페어 프로그래밍을 진행할 때, 두 명이 하나의 컴퓨터를 이용한다. 한 명은 키보드와 마우스를 잡고 코딩을 하는 "드라이버", 다른 한 명은 옆에 앉아서 지시를 하는 "네이게이터"로 구성된다. 두 사람의 관계는 정해진 규칙에 따라 바뀐다. 나는 주로 15분을 기준으로 역할을 바꿔가며 페어 프로그래밍을 진행했다. 자세한 설명은 링크를 참고. 페어프로그래밍은 단순히 프로그램을 구현하는 개념을 넘어 ..
-
[우아한 테크코스] 레벨 1 회고Notes/Retrospect 2020. 8. 19. 13:05
글쓰기 과제 [레벨1-기록] 좋은 시작이네요 비슷한 시기에 비슷한 곳을 바라보는 사람들 - 시작하며 우테코 2기의 시작을 축하하며 김범준님께서 하신 말씀 중 가장 기억에 남는 구절입니다. 그 이유로는 제가 생각하는 즐겁게 활동할 수 있는 조직의 핵심에 대한 내용이기 때문이죠. 처한 상황과 목적이 비슷한 사람들이 모일 때 발생하는 시너지는 강력합니다. 우리는 하루의 많은 시간을 함께 합니다. 우리의 공간에서는 수천 줄의 코드가 짜이고 수천 마디의 말들이 오가죠. 서로의 부족함을 채워주고 더 잘 아는 부분이 있다면 공유하기도 합니다. 그렇기에 어렵고 힘든 미션들이 주어지지만 즐겁게 도전할 수 있습니다. 우리는 만나고 깨진다, 그렇지만 결국엔 다시 만난다 - 페어 프로그래밍 우테코를 시작하면서부터 그저 평범한..
-
String과 StringBuilderLanguage/Java 2020. 8. 2. 19:26
우아한테크코스(이하 우테코) 레벨1 복습을 위한 글입니다. String은 자바 프로그램이 실행되는 동안 가장 많이 생성되는 객체라고 합니다. 관련 내용을 간단하게 복습해보겠습니다. 문자와 문자열 문자열은 객체지만 문자의 나열로 구성됩니다. char capitalA = ‘A’; // 문자 String a = “abc”; // 문자열 == 문자의 배열 지금은 abc라는 문자열 객체를 쌍 따옴표 안에 넣어서 생성하고 a라는 변수에 할당했습니다. 하지만 자바에서 일반적으로 객체를 생성하는 방법인 new를 이용하여 생성하는 방법도 있습니다. String b = new String(“abc”); 하지만 이와 같은 방법은 지양됩니다. 그 이유를 알아보겠습니다. // String a = "abc";이 컴파일 된 cla..