본문 바로가기

캡스톤 설계 [건물별 소통 플랫폼 BBC]

백엔드 기술스택 및 아키텍쳐 백엔드 Language : TypeScript Library & Framework : NestJS, Express.js Test: Jest ,Supertest Database : Mysql,erdcloud , DataGrip ORM : TypeORM Authentication: passport.js, JWT, 세션 Proxy Sever : Nginx . . . 우선 이번 백엔드 파트에서 사용할 언어 및 프레임워크, 인프라들이다. 파트 별로 왜 해당 언어 와 프레임워크 인프라들을 사용했는지를 기록해보자. . . . . . Language : TypeScript JavaScript에 타입을 추가한 언어 - 정적 타입 시스템 변수, 매개변수 및 함수 반환 값에 대한 타입을 명시적으로 지정할 수 있어 코드의 가.. 더보기
API 명세서 [REST API] Ver.1 프로젝트 설계 초반에 RESTful한 API 와 GraphQL API 중 어떤 방식으로 API를 짤지 고민을 하였다. REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 나타낸다. 즉 REST란 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다. GraphQL API는 쿼리 언어를 사용하여 데이터를 조작하는 API이며 단일 URL 엔드포인트를 가지고 있다. 클라이언트는 필요한 데이터를 얻기 위.. 더보기
데이터베이스 ERD 설계 Ver.1 위 사진은 전체적인 ERD 를 설계한 사진이다 이전에 팀프로젝트로 진행하며 같이 설계가 아닌 처음으로 데이터베이스 ERD를 처음부터 끝까지 설계를 해보았다. . . 각각의 테이블에 대한 속성과 디폴트값 NULL의 여부를 하나씩 테이블을 설계하며 많은 생각을 거쳐 나온 결과 물이다. 하지만 직접 벡엔드 개발 중 쿼리문을 짜며 데이터를 가져오며 테이블을 수정해야 할것같다. 특히 댓글과 채팅 무엇보다 알람의 관계에 대해 걱정이 많다. . . . 하지만 직접 개발을 하며 피드백을 거치는 경험은 필수불가결하다 생각을 했으며 그런 경험이 더욱 값질 것이라 생각하고 위 사진은 Ver.1 로 설계를 마쳤다. . . . 이제 개별적으로 살펴 보자 첫번째로 대부분의 테이블이 참조하고 있는 유저 테이블이다. 기본적으로 로컬.. 더보기
로우파이 프로토 타입 [스케치(Lo-Fi)] 디자인 이번 처음 디자인 공부까지 간략하게 진행 보았다. UI /UX 역시 한 학문인 만큼 공부를 할수록 깊게 들어갈 수도 있고 신경을 쓰는것에 끝이 없다고 느꼈다. . 그래서 'UI /UX 디자인 프로세스'를 따르되 디자인을 모두 끝내고 개발에 들어 가는것이 아닌 버전별로 디자인 또한 변경해가며 진행을 하려고 한다. . . . 우선 첫번째 단계인 스케치 이다.(거진 워크 플로우를 가진 와이어 프레임이라 봐도 될듯) 굉장히 러프하게 설계를 해보려 하였지만 막상 스케치를 하며 데이터베이스 ERD 설계까지 눈에 아른거려 최대한 실제로 사용자가 사용할 떄 불편한을 느끼지 않게 하기 위해 설계해 보았다. . 원래는 프로토-타이핑 까지 설계를 하고 데이터베이스 ERD 설계 및 API 명세서를 작성하려 하였지만 스.. 더보기
캡스톤 시작 (기획) 1년 반 간의 프로젝트 작업 시간을 잡고 꾸준히 새로운 기능을 추가하며 유지해 보고자 한다. 이전의 토이 프로젝트나 팀프로젝트에서는 특정 기능을 만들기만 했지만 이번 졸업 작품에서는 실 사용자 1000명을 목표로 프로젝트를 진행 하려고 한다(둑근둑근) . 프로젝트 기획, 디자인, 프론트엔드, 백엔드, 데브옵스 및 배포 까지 진행하여 최고의 포토폴리오로 만들고자 한다. . 백엔드 개발만 하다가 너무 많은 분야를 직접 설계하고 개발을 하려고 하니 생각보다 신경 쓸것들이 많지만 뭐 씨봉방 쥰나게 힘든만큼 얻어 가는게 너무 많을꺼같다. . 사설은 집어 치우고 바로 진행 시켜 ! 보자 간략한 기획 현재 프로젝트로 얻고 싶은 것은 무엇보다 전반적인 웹 개발의 생태 사이클에 대해 학습을 하며 기능 개발에 그치는게 아.. 더보기
이슈에 대한 대처 양식 이 프로젝트를 통해서 최소 하나 얻어갈 인사이트를 기록 1.issue 2.problem 3.solution 4.what i learn 예시 1 1.issue 사용자들이 에러를 직면한 이슈가 발생 배포한 서버를 업데이트 하기 위해서 코드를 수정하는 작업을 하는 동안 사용자들이 에러를 직면하는 이슈가 발생했다. 2.problem 스테이지 단계와 프로덕션 단계의 서버를 나누어 놓지 않는게 원인 3.solution 단일 서버에서 배포단계를 나워서 설계해서 개선 원래 프로젝트는 단일 서버로만 진행했었던 것을 배포단계로 나눠서 설계함 4.what i learn 내가 이런 상황에 놓였을 때 프로덕션 서버 하나로 위와 같은 이벤트로 알게 되었다. 예시 2 1.issue 특정 API 에서 응답 수집 시간이 200% 딜레.. 더보기