전체 글
-
REST와 자원 그리고 시행착오Server 2020. 8. 24. 20:47
우테코 미션 중 지하철 노선도 구현(즐겨찾기)를 하며 발생한 에피소드에 대한 글 지하철 노선도 구현 미션은 총 3단계로 구성된다. 노선도 자체를 구현하기. 그리고 경로를 탐색하는 기능을 추가하기, 마지막으로 사용자 관리와 즐겨찾기 기능 추가. 이 중 마지막 미션에서 사용자 관리를 추가하며 고민이 시작되었다. 사용자 회원가입과 로그인 기능은 잘 구현했다. 문제는 로그인 후 사용자 정보를 확인하는 API에 있었다. 로그인이 완료된 후에는 브라우져가 토큰을 가지고 있다가 해당 토큰을 이용하여 인가가 필요한 요청에 토큰을 함께 보내 MethodArgumentResolver를 이용하여 유효성 검사를 한다. 여기서 인가가 필요한 요청에 대한 응답으로 사용자 정보를 반환한다. 아래 코드를 살펴보자. @RequestM..
-
[우아한 테크코스] 레벨 1 회고Notes/Retrospect 2020. 8. 19. 13:05
글쓰기 과제 [레벨1-기록] 좋은 시작이네요 비슷한 시기에 비슷한 곳을 바라보는 사람들 - 시작하며 우테코 2기의 시작을 축하하며 김범준님께서 하신 말씀 중 가장 기억에 남는 구절입니다. 그 이유로는 제가 생각하는 즐겁게 활동할 수 있는 조직의 핵심에 대한 내용이기 때문이죠. 처한 상황과 목적이 비슷한 사람들이 모일 때 발생하는 시너지는 강력합니다. 우리는 하루의 많은 시간을 함께 합니다. 우리의 공간에서는 수천 줄의 코드가 짜이고 수천 마디의 말들이 오가죠. 서로의 부족함을 채워주고 더 잘 아는 부분이 있다면 공유하기도 합니다. 그렇기에 어렵고 힘든 미션들이 주어지지만 즐겁게 도전할 수 있습니다. 우리는 만나고 깨진다, 그렇지만 결국엔 다시 만난다 - 페어 프로그래밍 우테코를 시작하면서부터 그저 평범한..
-
Meta Tag & Open Graph Tag & Google Analytics 리액트에 적용하기Web 2020. 8. 13. 22:18
우아한 테크코스(이하 우테코)에서 진행하는 프로젝트에서 메타 태그와 OG 태그 그리고 구글 애널리틱스를 적용했습니다. 해당 내용에 대해 프로젝트에 적용하며 공부한 내용을 정리해보겠습니다. Meta Tag 왜 사용하는가? 웹사이트를 만든다고 끝이 아니다. 만든 사이트가 사용자에 의해 사용되어야 그 가치가 있다. 즉 사용자를 유치해야 한다. 여러 방법이 있지만 가장 간단하고 효과적인 방법은 메타 태그를 설정하는 것이다. 메타 태그를 설정하면 웹 포털이 우리 사이트의 메타 태그를 읽어 들여 포털의 검색엔진 결과에 반영한다. 즉 메타 태그를 설정해야 포털 검색 결과에 노출될 가능성이 높아진다. 추가로 메타 태그를 통해 사용자에게 보여지는 사이트 정보도 바꿀 수 있다. 예를 들면 favicon, 사이트 이름, 사..
-
[프로그래머의 길, 멘토에게 묻다] - 05Notes/Book 2020. 8. 10. 09:48
앞으로의 포스팅은 책에서 소개하는 패턴 언어 중 마음에 드는 구절을 소개하는 방식이 될 것이다. 긴 여정 상황 과거의 소프트웨어 개발이 어땠는지 말해줄 수 있는 프로그래머를 주위에서 찾기는 어려운 일이다. 혹여나 찾아서 이야기를 해보면 업계의 젊은 피들은 노장들이 이미 겪은 실수들을 반복한다 말하며 머리를 가로젓는다. 즉 개발자 세대 간에는 조금의 지식만이 전해졌고 옛 교훈은 잊힌 듯하다. 문제 당신은 소프트웨어 장인이 되고 싶은 마음이 있다. 그러지만 당신의 포부를 이루기 위해서는 세상의 기대와는 다른 길을 가야 한다. 세상은 당신에게 공부보다는 돈과 승진 기회를 더 바란다. 해결책 길게 보라, 장기적인 관점에서 성장을 위해 노력하라. 견습기간에는 금액이나 리더십보다 중요한 것이 있다. 중년이 되어서도..
-
좋은 회고란Notes/Retrospect 2020. 8. 5. 08:36
우아한 테크코스(이하 우테코)를 진행하며 수많은 회고를 하고 있다. 물론 우테코를 시작하기 이전부터 속해있는 "마이닝"이라는 팀에서도 회고를 한다. 감정 회고뿐 아니라 업무에 대한 회고도 진행한다. 이쯤 되면 회고를 꾸준히 실천하고 있다고 볼 수 있다. 그렇다면 내가 열심히 하고 있는 이 회고란 무엇인가. "되돌아보기"라고 정리할 수 있다. 되돌아보는 사건의 범위는 몇 개월이 될 수 있고 며칠이 될 수 있으며 단 몇 시간이 될 수 있다고 생각한다. 많은 개발자 분들께서 해를 마무리하며 회고글을 올리시는데 이런 장기 회고는 나를 되돌아볼 수 있는 좋은 장치라고 생각한다. 이런 유형의 회고는 혼자서 하는 회고다. 그렇지만 내가 주로 하는 회고는 팀원들과 함께하는 회고다. 좋은 회고란 무엇일까? 이를 논하기 ..
-
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..
-
[프로그래머의 길, 멘토에게 묻다] - 04Notes/Book 2020. 7. 27. 08:14
앞으로의 포스팅은 책에서 소개하는 패턴 언어 중 마음에 드는 구절을 소개하는 방식이 될 것이다. 무지에 맞서라 상황 내가 할 수 있는 기술 목록에 평소에 하는 업무와 관련이 있는 기술이 빠져 있음을 알게 되었다. 문제 숙달해야 할 기법과 도구가 있지만 어떻게 시작해야 할지 모르겠다. 다른 사람들은 내가 다 알고 있는 걸 기대하는 듯하다. 해결책 도구나 기법 하나를 고르고 능동적으로 빈틈을 메꿔라. 즉 개인적인 공부를 하라. 무턱대고 공부하기보다는 내게 가장 효율적인 방법으로 공부하라. 동작하는 장난감을 만들어봐도 좋고 멘토에게 물어봐도 좋다. 그렇지만 개인적으로 공부를 하는 행위가 팀이나 팀에서 진행하는 결과물에 방해가 된다면 삼가야 한다. 앞선 패턴 언어인 무지를 드러내라와 적절하게 함께 활용하면 좋다..
-
학습 테스트와 단위 테스트Language/Java 2020. 7. 20. 22:02
우아한테크코스(이하 우테코) 레벨 1 복습을 위한 글입니다. 우테코에서는 TDD를 강조합니다. 첫 주 수업에서 배웠던 내용도 테스트에 대한 내용입니다. 관련 내용을 간단하게 복습해보겠습니다. 학습 테스트란. 기능 구현을 위한 테스트라기보다 API, 라이브러리, 프레임워크가 어떻게 동작하는지를 검증하기 위한 테스트입니다. 학습 테스트의 장점. 다양한 조건에 따른 기능을 손쉽게 확인해 볼 수 있습니다. 학습 테스트 코드를 개발 중에 참고할 수 있습니다. 프레임워크나 제품을 업그레이드할 때 호환성 검증을 보여줍니다. (유지 보수에 도움을 줍니다.) 테스트 작성에 대한 좋은 훈련이 됩니다. 출처 학습 테스트로 배우는 스프링 - SpringWiki 프레임워크나 다른 라이브러리 등에 대한 테스트를 학습테스트(lea..