항해99/TIL

항해99/TIL

2021-07-22 항해99 TIL

오늘 한일 드디어 클론 코딩 과제를 제출하였습니다. 프론트 엔드와 백 엔드 간의 최종 코드 테스트를 마무리하였고, 새벽 2시가 얼마 남지 않은 시간에 제출하였습니다. 코드를 병합하는 과정에서 미니프로젝트에서도 겪은 알 수 없는 cors 에러와 API의 변경이 있어서 시간이 오래 걸렸던 것 같습니다. 갑자기 MySQL의 DB가 날아갔습니다. 이유를 알 수 없습니다. 우선은 Sequelize로 DB를 생성과 Table Migrate를 할 수 있어서 빠르게 복구를 할 수 있었고, 기존에 DB에 삽입할 INSERT INTO 임시 데이터를 별도로 생성해 놓았기 때문에 큰 문제 없이 복구할 수 있었습니다. 백업의 중요성을 깨달았습니다. 이전에 Synology에서도 비슷하게 충돌이 일어나 데이터의 일부 손실이 발생하..

항해99/TIL

2021-07-21 항해99 TIL

오늘 한일 '리블로그' 적용하지 못했습니다. MySQL 8버전 이상이거나, ORACLE을 사용했더라면 간단한 방법으로 구현할 수 있었겠지만, MySQL 5.7버전이라 순수하게 프로시저 또는 함수를 제작해 사용해야 하는 부분에서 많은 어려움이 존재했습니다. 논리적인 구조를 이해하고 있지만, 그것을 SQL로 옮기는 부분에서 막힘이 있었습니다. 결국 저녁 시간이 되어서야 리블로그 SQL 작성에 시간을 할애하여도 구현이 불가능할지도 모르기 때문에 현재까지 작성하지 않았던 테스트 코드 작성으로 선회하였습니다. API를 2개 추가하였습니다. SQL에서 RAND() 함수를 사용해 전체 유저 중에서 팔로우 되지 않은 유저를 출력해주는 A 것이었습니다. ORDER BY 절에서 정렬의 순서를 다양한 방식으로 나타낼 수 있..

항해99/TIL

2021-07-20 항해99 TIL

오늘 한일 클론코딩 백 엔드 코드의 병합을 종료하였습니다. API 문서에 작성한 모든 코드의 작성이 끝났지만, 추가적인 기능이 언제 생길지, 프론트 엔드와 조율을 통해 API가 언제 수정되어야 할지는 아직 확답을 내릴 수 없어서 언제든지 수정의 준비를 해야 할 것 같습니다. AWS EC2 서버에 코드를 올렸습니다. 이전에 작성한 미니프로젝트 서버와 클론코딩 서버를 동시에 사용할 수 있도록 pm2로 실행하였습니다. TRIGGER 작성을 완료하였습니다. Sequelize에서 테이블 Migration을 하면서 query를 작성할 수 있다는 것을 확인하고 테이블이 생성되면서 자동으로 TRIGGER를 생성하도록 설정하였습니다. 오늘 배운 것 클론코딩 백 엔드 코드 병합 AWS EC2 업로드 MySQL TRIGGE..

항해99/TIL

2021-07-19 항해99 TIL

오늘 한일 6개의 테이블을 조회하는 SQL 문을 작성했습니다. 서브쿼리가 많이 사용돼 프로젝트가 거대해졌을 때 성능이 효율적이라고는 장담할 수 없다고 생각합니다. 우선은 단순히 SQL을 구현하는 것에도 벅차다 보니 코드 최적화에 대해서는 신경을 못 쓰고 있습니다. 코드리뷰를 하면서 어떤 식으로 개선할 수 있는지 확인해야 할 것 같습니다. 최종 프로젝트팀장에 지원했습니다. 항해를 진행하면서 남은 6주의 시간 동안 단순히 모듈만 가져와 프로젝트에 접목하는 의미 없는 기능추가로 보여주기만 좋은 기술보다는 코드를 확실히 이해하고 프로젝트의 구조를 견고하게 구성해 현업에서도 사용하는 기술 스택을 위주로 프로젝트에 녹여내고 싶었습니다. SQL 공부와 프로젝트 진행을 병행하면서 DB 통신을 최소화하는 것이 상당히 어..

항해99/TIL

2021-07-18 항해99 TIL

오늘 한일 오랜만의 느긋한 일요일이 되었습니다. 클론코딩도 모든 구조를 정의했고 남은 것은 SQL 문을 작성하기만 하면 종료되는 문제들이기 때문에 마음 편하게 휴식을 할 수 있었습니다. SQL 공부를 하였습니다. 서브쿼리와 CRUD 기능에 대해 기존에 사용하던 것 이외의 다른 옵션들이 존재하는 것이 아닌지 찾아보았고, JOIN 부분을 다시 보았습니다. 프로젝트를 진행하면서 가장 많은 문제는 여러 테이블을 가지고 오면서 원하는 결괏값을 도출해내는 것인데 그런 관계를 정의하는 가장 중요한 것은 JOIN을 사용해 다른 테이블을 참조하는 것으로 생각하였습니다. AWS CCP 공부가 점점 밀리고 있습니다. 눈앞에 있는 공부해야 할 것들이 많아지다 보니 시간을 할애하는 것이 부족해진 것 같습니다. 평일이라도 조금씩..

항해99/TIL

2021-07-17 항해99 TIL

오늘 한일 클론코딩이 시작된 날 구조를 확실히 작성해놓았기 때문에 많은 수정 없이 프로그램 작성이 시작되었습니다. localStorage에서 사용하던 jwt Token 값을 Cookie로 변경해 프론트 엔드에서 불편하지 않도록 통신을 할 수 있게 만들었고, 변경된 방식에 맞게 Middleware를 수정하였습니다. 이메일, 비밀번호, 닉네임에 대한 정규표현 식을 작성하였습니다. 특수문자처리와 글자의 개수 등 고려해야 할 조건이 많았기 때문에 의외로 시간을 많이 잡아먹은 것 같습니다. MySQL에서 Follow를 추가하기 위해 "팔로우하려는 유저가 존재하는지", "이미 팔로우 되어 있는 것이 아닌지"를 확인하는 방법에서 SQL을 작성하는 부분에서 테이블을 2개 참조하며 결과가 1개가 나와야 한다는 것이 애매..

항해99/TIL

2021-07-16 항해99 TIL

오늘 한일 미니프로젝트의 최종 제출이 완료되었습니다. 많은 기능은 넣어보지 않았지만 백 엔드와 프론트 엔드 모두 열심히 프로젝트에 임해줬기 때문에 만족스러운 결과인 것 같습니다. 클론코딩의 주차가 시작되었습니다. 미니프로젝트와 동일하게 백 엔드, 프론트 엔드 각 2명씩 구성되었습니다. "첫날은 구조!" 시작과 동시에 주제선정, 와이어 프레임 작성, API 문서 작성, 업무 분담, DB ERD 생성, Sequelize Schema 생성의 순서대로 작업하였습니다. 프로그래밍을 하는 것이 아닌 프로젝트가 전반적으로 어떠한 방식으로 구성되는지 정의하였습니다. 오늘 배운 것 미니프로젝트 업로드 클론코딩 주제 선정 및 와이어 프레임, API 문서 작성 클론코딩 ERD 및 DB Schema 작성 내일 할 것 게시글 ..

항해99/TIL

2021-07-15 항해99 TIL

오늘 한일 미니프로젝트를 완료했습니다. API 문서를 최종적으로 정리하고, Github에 서버 배포 버전을 올려 버전 관리를 종료하였습니다. 작업을 마무리하였기 때문에 오늘은 자습할 시간이 많다고 생각했던 어제의 자신을 후회합니다. 다른 기능을 공부할 시간보다는 최종적으로 API를 점검하고, Notion, Git을 관리하는 부분에서 많은 시간을 할애하였습니다. 튜터님과 면담을 진행하였습니다. 이번 프로젝트를 진행하면서 가장 많이 느꼈던 "기능을 중점적으로 할 것인가?", "프로젝트의 틀을 확실히 잡고 DB 및 구조를 최적화 해야 하는가?" 두 가지 고민에 대한 질문이었습니다. 답변은 단순한 기능을 추가하는 것보다는 진행하고 있는 프로젝트의 확실한 기능을 어떻게 구현했고, 왜 구현했는지에 대한 이유를 알고..

항해99/TIL

2021-07-14 항해99 TIL

오늘 한일 DB의 데이터를 SELECT로 가져올 때 사용할 서브 쿼리문과 JOIN을 병합해 가져올 수 있는 쿼리문을 제작하였습니다. DB를 최대한 경량화해 데이터의 중복성을 피하도록 설정했기 때문에 쿼리문을 작성하는 데에서 많은 어려움이 있었습니다. 백 엔드에서 제작할 API는 전부 종료되었습니다. 서버의 기본적인 CRUD 기능은 프로그래밍 작업 첫날에 해결이 되었지만, API 문서의 경우 프로젝트를 처음 시작한 날과는 다르게 많은 변화가 있다 보니 서버의 프로그램에서 API 문서에 맞게 수정을 하는 부분에서 많은 시간을 할애하였던 것 같습니다. 오늘 배운 것 미니프로젝트 API 구현 Search, GetPosts API SQL 문 멘탈 관리 내일 할 것 미니프로젝트 테스트코드 작성 Socket 자바스크..

항해99/TIL

2021-07-13 항해99 TIL

오늘 한일 개발하고 있는 프로젝트의 가장 핵심적인 목표는 무엇인가? 라는 의문으로 오늘 하루를 보냈습니다. 고객의 입장에서 프로젝트를 개발해야 하는지, 지금까지 배웠던 Node.js의 기술을 연습하는 것인지, 새로운 기술을 병합하는 것인지, 많이 고민하였지만 확실히 어떤 것을 목표로 삼아야 할지 정하지 못한 하루였습니다. 현재까지는 이번 프로젝트의 구성을 최적화시킨다는 것을 목표로 삼았었습니다. DB 구조를 최대한 줄여 불필요한 데이터가 생성되지 않도록 설정하였고, 미들웨어를 사용해 중복된 부분이 존재하지 않도록 코드를 작성하였습니다. 하지만 기술적인 부분에서는 새로운 기술을 도입하지 않아 부족한 느낌이 들었습니다. MySQL 서버의 Favorites 테이블과 Posts 테이블을 서브쿼리로 합쳐 case..

커스텀 리
'항해99/TIL' 카테고리의 글 목록 (6 Page)