분류 전체보기

항해99/TIL

2021-07-17 항해99 TIL

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

항해99/필기노트

[필기노트] 2021-07-16 프로젝트의 목표, DB 생성 및 설정, 쿠키

TODO - 만약 데이터가 없을 때 NULL을 넣는 방법 - 리블로그는 없을 경우 NULL로 삽입한다. - models를 npx로 가져왔을 때 지금 생성된 테이블을 기준으로 models가 만들어질 수 없는가? 이번프로젝트의 코드최적화 방법 - Router를 메인에서 줄이기 - Router에서 동일한 url에 .get과 .post를 route를 사용해 메소드별로 분류하는 것 - 비밀번호를 .env에 저장하는 것 이번 프로젝트의 목표 - 무슨 기술을 할지, 어떤 방향성을 가지고 갈 지 DB에서 외래키를 설정할 때 동일한 기본키를 설정해도 가능하다. 트리거 : 누군가 지정한 TABLE에 데이터를 넣을 경우 실행하도록 설정 (기능 중 하나) ex) 누군가 Favorites에 데이터를 추가할 경우 자동적으로 Al..

항해99/TIL

2021-07-16 항해99 TIL

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

항해99/필기노트

[필기노트] 2021-07-15 SQL, 면담, Socket, session

== Socket == 소켓 : 데이터를 송수신하기 위해 반드시 거쳐야 하는 연결부 패킷 : 소켓을 통해 송수신하는 데이터 덩어리 Socket.io - 웹 소켓을 포함해, 웹소켓을 사용하지 못하는 환경에서도 웹소켓과 비슷하게 사용 가능하도록 구현해놓은 라이브러리 $ npm install socket.io app 객체 : express로 기존처럼 API를 개발하거나 프론트엔드 파일을 서빙하는 용도로 사용 io 객체 : 기존처럼 클라이언트와 데이터를 주고 받는 용도로 사용 // Socket은 Express와 별도로 움직여야 하는데 데이터 통신은 무엇을 기준으로 하는가? -- Node.js Socket io.on("connection", (socket) => {} ); - 소켓 연결 이벤트 핸들링 socket..

항해99/TIL

2021-07-15 항해99 TIL

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

항해99/필기노트

[필기노트] 2021-07-14 SQL SubQuery, JOIN, Socket, ws

-- 게시글 상세 SQL SELECT p.postId, p.userId, u.nickname, p.title, p.artist, p.showDate, p.description, p.img, CASE WHEN p.postId IN (SELECT postId FROM Favorites where userId = 1) then "TRUE" else "FALSE" end as favorite FROM Posts AS p JOIN Users AS u on p.userId = u.userId; - 출력 데이터 p.postId, p.userId, u.nickname, p.title, p.artist, p.showDate, p.description, p.img, favorite 유무 - Favorites 테이블에서 해..

항해99/TIL

2021-07-14 항해99 TIL

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

NAS/Synology

[Synology] DS918+ 디스크 볼륨 충돌기 -3.5-

아침의 정규 시간을 시작하고 몇 분 지나지 않았을 무렵 처음 보는 1544로 시작하는 번호로 전화 한 통이 왔습니다. 전화를 받아보니 와이즈 허브였습니다. "혹시 시놀로지 제품 A/S 보내셨나요?" '네 맞습니다. 왜 그러시죠?' "이번에 보내주신 DS918+가 간헐적으로 종료되지 않는다고 말씀해주셨는데요, 저희가 테스트를 하더라도 확실한 문제를 찾을 수 없어 ..." 여기까지는 '아 RMA를 보내기 전에 사전에 말하고 보내려는구나'라는 생각을 하였습니다. 하지만 바로 다음 이어진 발언은 충격이었습니다. "새로운 제품으로 교체해 바로 발송해드리겠습니다." 2~3달 동안 NAS를 사용하지 못하니 백업을 못한다는 불안감 때문에 새로운 제품이나 하나 구매하려고 매물이나 뒤적거리고 있었는데 갑작스럽게 새제품으로..

항해99/TIL

2021-07-13 항해99 TIL

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

항해99/TIL

2021-07-12 항해99 TIL

오늘 한일 미니 프로젝트의 백 엔드 코드를 하나로 병합하였습니다. Git을 사용해 코드를 병합하기 수월하였지만, 기본적인 사용법이 익숙하지 않아 시간이 많이 소요되었습니다. 처음으로 백 엔드 API 서버와 프론트 엔드의 클라이언트 코드를 연동해보았습니다. 가장 문제였던 점은 백 엔드는 프론트 엔드에서 어떠한 방식으로 테스트하는지 알지 못한다는 점에서 "과연 내가 작성한 코드가 맞는 것 일까?"라는 의문이 들었고, 백 엔드와 프론트 엔드 모두 자기가 협업하고 있는 파트의 기술을 알고 있다면 협업하기 더 수월하지 않을까 생각하였습니다. 오늘 배운 것 AWS EC2 DB 연동 AWS S3 React 연동 미니 프로젝트 백 엔드 코드 병합 미니 프로젝트 서버 및 클라이언트 연동 Git 사용법 내일 할 것 미니 ..

커스텀 리
'분류 전체보기' 카테고리의 글 목록 (17 Page)