분류 전체보기
-
혼자서 방안이 떠오르지 않는다면 동료들에게 상황을 공유하자Today I Learned 2022. 10. 21. 23:56
오전에 출근하면서 주제 도메인 자체에 대한 고민을 했다. 기능 상의 충돌에 대한 부분을 어떻게 해결할지 하루 밤 동안 고민을 했는데도 쉽게 풀리지 않았다. '이 도메인은 아닌 걸까?' 생각으로까지 흘렀고, 원래 생각하고 있었던 다른 도메인 서비스인 공유 자전거/킥보드 대여 서비스 클론으로 이제나마 기획을 바꿔야 하는 걸까 잠시 마음이 옮겨갔다. 노아 트레이너님과 이야기를 나누기 전에 동료들과 관련해서 이야기를 나눴다. 이번에도 생각하지 못한 부분이 있었다. 웹 서비스와 앱 서비스의 차이에서 기인하는 부분이였다. 킥보드 대여 서비스와 서울시 공공자전거 따릉이 웹 페이지에 들어가 제공되는 기능을 확인해보았다. 킥보드 대여 서비스는 웹에서 제공하고 있지 않았다. 따릉이는 자전거 대여소 위치와 자전거 대수 정보..
-
포트폴리오 주간 프로젝트 1주차 기획 중간점검Today I Learned 2022. 10. 20. 21:30
다음주 월요일 일과 시작 전까지 마감해야 하는 포트폴리오 프로젝트 기획 주간의 절반이 지나갔다. 지금까지 어떤 것들을 했고, 그 과정에서 어떤 것을 느꼈고, 남은 시간 동안 해야 할 것들에는 무엇이 있는지 돌아본다. 지금까지 한 것들 첫 UI 프로토타이핑 1기 모든 동료들과 도장에 모여서 각자 구현하고 싶은 애플리케이션의 주제를 정하고 어떤 기능을 갖는지 고민했다. 동시에 종이에 애플리케이션이 화면에 나타날 때의 내용들을 가볍게 적어보는 UI 프로토타이핑을 했다. 애플리케이션의 최소 조건은 네이버 카페와 같이 복잡한 도메인 구조를 갖거나, 구현하기 위해 도전적인 기술을 다뤄야 하는 기능이 있는 애플리케이션이었다. 처음에는 지도 도메인을 중심으로 가져가는 애플리케이션을 만들어보고 싶다고 생각했었고, 내가 ..
-
React는 다른 프론트엔드 프레임워크에 비해 어떤 이점이 있을까?Today I Learned 2022. 10. 19. 22:18
프론트엔드 라이브러리/프레임워크로 React를 사용할 경우 다른 프론트엔드 프레임워크에 비해 어떤 이점이 있을지 조사하고 있다. 먼저 React의 주된 특징에 대해 살펴보면서, 각 특징에 대해 현재 React 외에 가장 널리 쓰인다고 알려진 Angular, Vue.js와 비교를 진행했다. 컴포넌트 기반의 개발 React는 UI를 각각의 컴포넌트로 나타내며, 컴포넌트의 형식으로는 XML 포맷의 Template에 JavaScript를 직접 내장시킨 JSX 형식을 사용한다. Template이 JavaScript 문법을 적극적으로 차용하는 형태로, 로직을 표현하는 방식이 자유롭고 손쉬운 코드 재사용이 가능하다는 특징이 있다. Vue.js 역시 컴포넌트를 이용하나 컴포넌트의 Template을 HTML 마크업을 기..
-
Spring을 쓰긴 쓸 건데, 도대체 왜 써야 할까?Today I Learned 2022. 10. 18. 23:57
포트폴리오 프로젝트 애플리케이션에 사용될 기술 스택을 정의하기 위해 계속해서 자료들을 찾아보고 있다. 오늘은 웹 서버 프레임워크로 Spring을 사용하는 것이 다른 프레임워크들을 사용하는 것에 비해 어떤 점이 좋은지 찾기 위해 Spring의 주요 특성들을 찾아보고, 다른 웹 서버 프레임워크들을 조금씩 찾아보면서 Spring과 어떤 차이가 있는지 알아보았다. 일단 작업의 진척도는 Spring에 대해서는 조사를 일정량 진행했지만, 비교 대상이 될 다른 웹 프레임워크들에 대해서는 조사가 조금 더 필요한 상태이다. 오늘 가장 크게 발목을 잡았던 부분은 도대체 Spring을 사용해야 하는 이유를 어느 범위에서부터 잡아나가야 할지 어려웠다는 점이었다. 단계별로 차근차근 밟아나가는 편이 좋을까 싶어 일단 웹 서버 개..
-
웹 지도 클러스터링 기법을 활용할 때 NoSQL 계열의 데이터베이스가 유리한 이유는 무엇인가?Today I Learned 2022. 10. 17. 22:48
현재 구상하고 있는 그룹 스포츠 경기 참여 및 장소 대여 웹 애플리케이션에서는 모집글을 보면서 팀을 찾거나 장소를 대여하기 위해 장소를 찾는 과정에서 웹 지도를 사용하려 하고 있다. 웹 지도에서는 마커를 이용해 모집글이 올라온 위치를 지도에 표시하는 방식을 사용하려 하고 있다. 지난 주말, 트레이너님께서 애플리케이션에 웹 지도 개념이 들어갈 경우 클러스터링이라는 개념이 사용될 수 있다는 점과, 웹 지도에 사용되는 데이터를 관리하는 데이터베이스는 관계형 데이터베이스보다는 NoSQL 형태의 데이터베이스가 더 적합하다는 언질을 주셨었다. 이번 주 동안 진행하는 과정에는 애플리케이션의 기능을 정의한 뒤, 기능에 사용될 기술 스택을 선정해야 한다. 이때 선택한 기술 스택이 다른 기술 스택 대비 우위에 있는 점을 ..
-
테스트도 결국 좋은 애플리케이션을 만들기 위한 과정인 것 (레벨 테스트 10일차 작업 회고)Today I Learned 2022. 10. 14. 23:35
3주 동안 풀스택 개발과 레벨 테스트로 이어졌던 규모와 순서를 갖춘 하나의 작은 '프로젝트' 과정을 경험하는 예행 연습이 끝났다. 인수 테스트 작성이 동료들보다 늦어 일과가 끝난 뒤 1시간여 정도까지의 시간을 더 투자해 부족하나마 인수 테스트까지 모두 작성을 마쳤다. 기능은 모두가 똑같이 잘 구현할 수 있었지만, 제한 시간 내에 모든 것을 완전히 끝내지 못했다는 사실은 가슴 한 켠에 또 한번의 작은 아쉬움으로 남을 듯 하다. 사실 인수 테스트는 프로젝트를 시작하면서 의욕 충만하게 작성하기 시작했었던 부분이였다. 인수 테스트를 통해 프로그램이 처하는 대부분의 상황을 먼저 파악한 뒤, 그 상황들을 하나씩 케어해나가야 할 것이라고 생각했다. 그러다보니 프로젝트 초기에 요구사항을 보면서 인수 테스트 목록과 인수..
-
여전히 통제가 안 되는 영역이 있다는 불안감 (레벨 테스트 9일차 작업 회고)Today I Learned 2022. 10. 13. 23:59
어느덧 레벨 테스트 마감까지 하루만을 남겨놓고 있다. 예비군을 다녀와서 작업에 8시간 정도를 덜 쓰기는 했지만, 그건 예비군을 다녀온 다른 동료분도 마찬가지이고, 다른 시간들을 최대한 끌어쓰려 노력했기 때문에 전체 작업에 그렇게까지 큰 영향을 주지는 않았을 것이다. 이제 남은 작업 양의 범위가 상당히 좁혀지기는 했지만, 현재 가장 불안한 점은 남은 작업 영역 중에 내가 완전히 통제하고 있지 못한 것 같다는 생각이 드는 영역들이 남아 있는 것 같다는 부분이다. 동료분들이 이미지를 추가했을 때 성공하던 테스트가 실패하면서 고통받는 모습을 근 며칠 간 쭉 봐 왔다. 마감까지 남은 시간 동안 구현해야 하는 부분 중의 하나가 model이 이미지 주소를 갖게 하고, 그 주소를 받아와 프론트엔드에서 이미지를 불러오도..
-
jest.fn()을 부여한 변수에는 호출 기록이 쌓인다Today I Learned 2022. 10. 12. 23:58
선물하기 페이지 컴포넌트의 테스트를 작성하는 과정에서 모킹한 외부 라이브러리와 직접 만들었던 Store의 함수가 특정 테스트를 수행하는 도중 호출되었는지 검사하는 부분이 있었다. 페이지에서 입력해야 하는 내용을 입력한 뒤, 선물하기 버튼을 누르면 OrderStore를 거쳐 선물한 내역을 백엔드에서 생성하도록 요청하는데, 요청한 결과로 생성된 선물한 내역의 id가 전달되도록 했다. 이때 전달받은 선물한 내역의 id의 존재 유무에 따라 특정 동작을 수행하는지, 하지 않는지를 테스트하고자 했다. 테스트 코드에서 다음과 같이 페이지 컴포넌트에서 사용된 navigate와 fetchUserAmount를 모킹했다. 통과되어야 하는 테스트 코드의 내용은 다음과 같다. 첫 번째 테스트는 통과하는 것을 확인했지만, 두 번..