우아한 테크코스(5)
-
API 하위 호환성을 어떻게 지킬 것인가??
디깅룸이라는 안드로이드 어플을 7월 달에 어플을 출시하고 지금까지 쭉 운영하고 있습니다. 디깅룸은 사용자의 음악 취향 정보를 수집해 취향에 맞는 음악/영상을 추천해주는 어플입니다. 우아한테크코스 과정 중에 프로젝트로 진행했던 서비스인데요. 우아한테크코스 과정이 끝나더라도 지속적으로 기능을 개선하고 운영해가기로 결정했으니 다들 한번 사용해보세요! API 버저닝은 왜 필요할까? 안드로이드 팀원들과 어플을 개발하는 경우에는 항상 주의해야하는 점이 있습니다. 그것은 바로 API의 하위호환성을 고려해서 배포를 해야한다는 점입니다. api가 변경될 때마다 사용자에게 어플을 강제로 업데이트를 시킬 수는 없는 노릇이니까요. 저희는 이 부분을 놓치고 있었습니다. 처음 어플을 출시할 때는 회원 가입 기능이 있었는데요. 다..
2023.11.19 -
추천 서비스에서 '좋아요' 대신 '싫어요' 기능을 넣기로 한 이유
얼마전 1차 데모데이 때 이런 피드백을 받았다. "싫어요 기능이 꼭 필요할까요? 차라리 좋아요라는 기능을 넣는 것이 추천 서비스에 더 적합하지 않을까요? 긍정문이어서 거부감도 적을 것 같고요." 지난 포스팅에서도 작성했지만 우리 프로젝트는 '사용자의 선호에 맞춘 음악 추천 서비스'이다. 현재 안드로이드 파트와 백엔드 파트가 모여서 개발을 진행하고 있다. 1차 데모데이 때 서비스 핵심 기능을 발표하면서 위와 같은 질문/피드백을 받았다. 당시에 질문과 피드백에 대해 일부 공감하긴 했지만 마음 속에선 계속해서 꺼림칙한 느낌이 들었다. 왜 꺼림칙하지? 조직행동론 곰곰히 생각을 해보다가 이전에 공부한 조직행동론을 떠올리게 되었다. 조직행동론은 심리학과 경영학에 기초한 학문으로 조직 구성원들이 조직 내에서 잘 일할..
2023.07.12 -
23년 04월 24일, 일일 회고
Fact (사실: 무슨 일이 있었나?) 자바 공부 - 웹 자동차 경주 step 2 미션을 다시 제출하고 리뷰 요청을 보냈다. - Spring ApplicationContext와 ComponentScan에 대해 학습하고 정리했다. 개인 성장 - 오늘 하려고 했던 일들을 모두 했다! - 소켓을 사용하는 프로토콜 스택의 전반적인 과정에 대해서 책을 읽고 공부했다. 커뮤니티 - 브랜딩 주간 근로 회의에 참여했다. - 네트워크 스터디에 참여했다. - 학습로그 말하기를 수행했다. Feeling (느낌: 무슨 느낌이 들었나?) 흐음... 뭔가 조금 아쉬운 느낌이 든다. 분명 하려고 했던 일들을 모두 마무리했는데, 찝찝한 느낌이 드는건 뭘까? 한 가지 그럴듯한 이유가 생각난다. 우선 스스로 학습해가며 배우는 이 과정이..
2023.04.25 -
23년 04월 11일, 일일 회고
Fact (사실: 무슨 일이 있었나?) 자바 공부 - 스프링을 활용해 웹 api를 Mapping하는 여러 방법에 대해 배웠다. - 자동차 미션을 웹으로 만들기 위해 dto를 적용했다.(사실 적용하려고만 했다. 아직 구현은 못했다.) - 우테코 레벨 1에서 제공하는 Spring MVC 학습테스트를 실습했다. 개인 성장 - 우테코 레벨 1 방학 동안 클리퍼 웹 서비스 api를 개발했다. - 오늘은 클리퍼 웹 서비스에서 프론트엔드와의 api 통신을 위한 디비 구조 변경 및 aws 배포를 마쳤다. 커뮤니티 - 페어인 '에단'과 친해졌다. 함께 이야기도 나누기 위해 식사도 함께 진행했다. Feeling (느낌: 무슨 느낌이 들었나?) - 간만에 우테코 크루들을 만났는데 너무 반가웠다. 카톡이나 슬랙으로 간간히 연..
2023.04.11 -
자바, 객체야~ 일해라!
우아한테크코스의 프리코스부터 레벨 1을 진행하는 지금까지 배운 것 중에 가장 인상 깊은 내용이 무엇인가?하고 물어보면 나는 곧바로 “객체가 일하도록 해라!”라는 내용을 말할 것이다. ‘객체는 객체스럽게 사용한다.’ 우아한테크코스 프리코스 기간 중에 받았던 피드백 중에는 다음과 같은 내용이 있었다. 이는 무분별한 getter 사용을 자제하고 객체가 스스로 일하게끔 하라는 의미였다. 이를테면 다음과 같은 코드가 있다고 가정해보자. (Line 클래스는 생략…) 사다리 게임을 진행하는 코드의 예시이다. 플레이어는 위치에 대한 정보를 가지고 있고, 플레이어의 위치를 line에 전달했을 때 사다리가 어디로 연결되어있는지 확인할 수 있는 코드이다. Player는 getter와 setter를 통해 플레이어의 현재 위치..
2023.02.27