Hanghae99 (8) 썸네일형 리스트형 [WIL] 이번 주 실전프로젝트를 진행하면서.. 프로젝트가 진행되면서 발생했던 이슈 케이스는 아래와 같다. 1. 기존 구조의 문제점이 발견된 경우 해당 케이스로 인해 코드뿐 아니라 DB구조까지 변경되었다. 비용이 가장 컸다고 생각한다. 2. 프론트앤드가 구체화됨에 따라 기능 동작 순서, 방식이 달라지는 경우 대개 API 호출 순서 또는 화면 상 액션 발생 위치가 달라지는 경우가 많았다. 백앤드 개발자로서 어떻게 좀 더 효율적으로 프로젝트를 진행할 수 있었을까? 성공적으로 프로젝트를 마무리 짓기 위해서 필요한 것은 개개인의 역량과 커뮤니케이션, 업무 프로세스까지 다양한 요소가 충족되어야겠지만, 이번 주에 경험한 부분으로 한정하여 생각해보고자 한다. 짧은 시간 내 빠르게 개발을 해야 하는 만큼 코드 자체도 기만하게 수정될 수 있도록 구조를 짰다면 좋았을 .. [WIL] 항해99 5주차 프로젝트 회고(10월 18일 ~ 23일) 이해했다면 기록하자. 익숙해지는 건 그다음이다. 1. 이슈가 발생했다면 [ 원인 분석 > 시도한 방법 > 해결방법 ] 세 단계로 정리해둔다. 2. 새로운 개념이나 툴을 이해했다면 다시 처음부터 기록한다. 나만의 치팅 시트를 만든다. 3. 대단한 것이 아니어도 괜찮다. 기록을 습관화하자. 프로젝트를 진행할 때마다 "이거 봤던 오류인데 어떻게 처리했더라?" 혹은 "어떻게 구현했더라?" 하며 분명 이전에 해결했던 문제를 다시 해결하는 수고를 겪으며 시간을 보내는 경우가 있었다. 다행히 꾸준히 기록을 해왔던 터라 그나마 빠르게 처리할 수는 있었지만 내용이 상세하게 정리되어있지 않다 보니 다시 기록을 읽으며 이해하는데 시간이 걸렸다. 기록을 하는 것도 좋지만 내가 이슈가 발생한 맥락을 완전히 잊고 다시 봐도 이해.. [WIL] 항해99 4주차 팀 프로젝트 회고(10월 11일 ~ 15일) 이번 주차에는.. 이번 4주차에는 프론트앤드와 백앤드 개발자가 팀을 이뤄 웹서비스를 개발하고 배포하는 프로젝트를 진행했다. 처음으로 프론트와 백을 나눠서 프로젝트를 진행하였는데 서로 알고 있는 내용이 다르다보니 소통하는 것이 만만치 않았고 진행하면서 계속 논의하며 방향을 잡아나갔다. 협업에 있어서 아쉬웠던 점.. 와이어프레임을 그리고 API와 DB구조를 잡을 때는 프론트앤드 개발자분들과 충분히 싱크를 맞췄다고 생각했는데, 유효성체크 또는 데이터를 헤더로 받을지 바디로 받을지 등 세부적인 사항들을 공유하지 않아서 작업이 중복되거나 의도와 다르게 구현된 경우들이 발생했다. 시작 전에 모든 경우들을 고려할 수는 없지만 진행하는 과정에서 프론트와 백이 각각 작업을 진행하고 서로가 어떤 개발을 진행하고있고 어떤 .. [WIL] 9월 18일 ~ 24일까지 배운 것들 3주차 프로젝트를 진행하며.. 문제가 발생했던 부분과 어떻게 해결했는지, 그리고 개념적으로 부족했던 부분을 보완한 부분들을 노션으로 정리하고 있는데 구분이 모호하다보니 내용이 점점 많아지면서 복잡해지는 것 같다. 어떤 부분을 블로그에 게시하고, 노션에 따로 정리할지 그리고 노션에 정리한다면 어떤 카테고리고 구분해서 정리할 지 명확하게 구조를 잡아야할 필요성을 느끼고 있다. 새로운 4주차 부터 내용을 잘 구분지어서 플랫폼 간 콘텐츠를 이전할 때도 문제없도록 구조를 잡아야겠다. 아직 부족함이 많지만 성장하기 위해 어느 부분이 채워져야할 지 점점 명확해지고 있다. 그 부분들 채워나가면 조금씩 성장할 수 있을 것이라는 확신이 든다. Node.js는 middleware가 핵심! 요청과 응답 사이에서 동작하는 mi.. 10/9 TIL 3주차 주특기 심화 주차가 마무리되면서 몇 가지 개념에 대해 고민해볼 시간이 주어졌다. 피상적으로만 알고 있던 개념들을 조금 더 깊게 이해할 수 있었고 해당 내용을 기록해두고자 한다. Q. Cookie를 쓰신 분도 계시고, localStorage를 쓰신 분도 계신 것 같습니다. 각자 왜 cookie 또는 localStorage를 선택하셨나요? A. 많은 보안 웹사이트들은 로그인을 한 후 Cookies를 사용해 유저의 신원을 확인하여 모든 페이지에서 재인증을 거치지않아도 되게 됩니다. Cookie는 HTTP요청에 자동으로 데이터를 넘겨주고, LocalStorage와 다르게 header를 안 써도 되기 때문에 cookie를 사용했습니다. LocalStorage는 Cookies와 달리 모든 HTTP 요청에서 .. [WIL] ORM과 SQL 그리고 2주차를 진행하며.. 어느새 부트캠프 2주 차가 끝났다. 앞으로도 갈길이 멀지만 조금씩 성장하고 있는 느낌이 들어서 즐겁게 공부하고 있다. 2주 차 과제를 진행하면서 정규식을 활용하였는 데 사용하기 전에는 복잡해 보여서 걱정이 조금 앞섰지만 막상 차근차근 적용해보니 재미있었다. 별 것 아닌 것 같으면서도 은근히 헷갈리고 테스트 시 예상치 못한 결과를 만나기도 하면서 우여곡절 끝에 의도한 대로 처리했다. const regex_id = /([a-z]|[A-Z]|[0-9]){3,}/g const nicknameCheckResult = nickname.match(regex_id) console.log(nicknameCheckResult) if (nicknameCheckResult != nickname) { res.status(400.. [WIL] 9월 13일 ~ 17일 까지 배운 것들 고민한 부분과 해결한 방법 1. jinja2를 활용하여 for in 문을 돌릴 때 가장 마지막에 위치한 데이터를 가장 먼저 출력하고자 했다. 이때 어떻게 데이터를 역순으로 표시할 수 있을까? /* reverse 활용으로 해결 */ {% for gathering in gatherings|reverse %} 2. jinja2 활용하여 for in 문을 돌릴 때 각각 생성되는 요소들의 인덱스를 다르게 부여하고자하는 경우 어떻게 처리할 수 있을까? (생성되는 요소에 따라 모달창을 각각 연결하기 위해 필요했던 사항) /* {{ loop.index }} 로 해결 */ 자세히 보기 3. 웹스크래핑 시 URL 쿼리를 입력받은 변수로 적용하고자 할 때 어떻게 처리할 수 있을까? #url 변수에 url 지정 시, 입력받을.. [항해99] 1일차 Starting Assignment! Starting Assignment 제출 게시글 1. 우리 조 프로젝트 제목/간단설명 제목 : 맛집공고 설명 : 일상을 탈출하여 함께 맛집을 방문할 사람들을 모집할 수 있는 웹서비스 2. 와이어프레임 사진 3. 개발해야 하는 기능들 기능 Method URL request response 모임 전체 조회 GET /api/ 모임 리스트 모임 작성 POST /api/gathering_create {'id_user': id_user, 'id_gathering': id_gathering, 'title':title, 'date': date, 'agenda': agenda, 'max_guests': max_guests, 'location': location, 'restaurant': restaurant} - msg:.. 이전 1 다음