The four Fs FACTS 노드 심화 프로젝트 마무리 및 발표회 메모리 CS 특강 수강 FEELINGS 꽤나 힘들었던 프로젝트가 마무리 되었다. Node.js를 배워서 만든 첫 프로젝트였는데 어려웠다기 보다는 생각보다 양이 많았던 것 같다. 차근차근 복습까지 하면 잘 체득할 수 있는 내용들이었다. FINDINGS Node.js를 활용한 CRUD 및 프론트와 연결 방식 익힘 3계층 아키텍쳐 패턴을 이용한 계층화 방식을 익힘 테스트 코드에 대한 이해 메모리에 대한 이해 FUTURE 시간을 내서 복습하면서 해내지 못했던 소켓과 테스트 코드 부분을 완성할 것이다. 특히 소켓 부분은 이번주 강의와 직결되기 때문에 공부와 병행할 수 있을 것이다. 나를 위한 응원 한마디 프로젝트 하느라 수고했다 이제 또 공부해..
1. 프로젝트 소개 제목: 천씨네 간단 설명: 25년 장인 미스타천의 손길이 닿은 수제(?) 빨래방에 어서오세요 핵심 기능 계정 관리: 회원가입, 로그인, 마이페이지 세탁 서비스 이용: 서비스 신청 및 상태 파악(손님), 서비스 진행 및 상태 업데이트(사장님) 리뷰: 이용한 서비스에 대한 리뷰 CRUD 배포 URL ( AWS EC2 이용, ~2023.01.08. ) http://3.35.19.115 개발 GitHub GitHub - interrobang3544/spartacamp-teamproject-mr.chun: 스파르타캠프 노드 주특기 심화 프로젝트 스파르타캠프 노드 주특기 심화 프로젝트. Contribute to interrobang3544/spartacamp-teamproject-mr.chun ..
Keep 노션으로 설계/과정/결과에 대한 정리 빠르고 정확한 DB 설계 해결 못하는 부분에 대해 팀원들의 도움 받기, 어느 시간이든 부담없이 물어보기 깃허브 활용: 기능별로 브랜치를 나눠 작업하는 방식을 통해 다른 팀원을 개발 내용을 빠르게 확인하고 PR를 활용하여 편하게 합칠 수 있었다. 매일 저녁 회의 수행: 그냥 쉬면서 잡담하는 것을 포함하여 저녁시간의 잠깐의 대화를 통해 팀원들의 진행 상황과 개인적인 컨디션 등을 알 수 있어서 좋았다. Problem Problem1 문제점 : 처음으로 프론트와 백을 완전히 나누어 작업한 뒤 연결하였는데, 그 과정이 생각보다 수월하지 않았다. 프론트 자바스크립트 부분을 다루는 것에 시간을 많이 쓰게 된다. 해결 방안 : 계획단계에서 최대한 디테일하게 설계하고, 협업..
키워드1 문제점 Sequelize 쿼리문으로 데이터 조회 요청시 join을 하게 되면 해당 데이터가 객체 형태로 합쳐지게 되는데 이를 원래 데이터와 같은 형태로 합치고 싶었다. 시도해본 것들 include를 이용한 다양한 예시들을 따라해 봤다 해결 아래와 같이 코드를 짜서 해결했다 findReviewByOwnerId = async (ownerId) => { const review = await this.reviewModel.findAll({ raw: true, attributes: { include: ['Service.customerId', 'Service.customer.nickname'], }, include: [ { model: this.serviceModel, attributes: [], wher..
form 태그 안의 button 문제점 프론트에서 form 태그 안에 button 태그가 존재하는 경우 button의 onclick 함수가 아닌 form 자체의 submit 함수가 실행된다. 이로 인해 원하는 onclick 함수를 활용할 수 없었다. 시도해본 것들 button 태그에 type="button"을 추가하기 input 태그 type="button"을 대신 활용하기 해결 두번째 방법으로 해결이 되었다. 알게 된 점 html 엘리먼트끼리 연동되어 사용되는 경우가 있다는 것을 처음 알았다. 어떤 오류가 발생했을 때 단순히 해당 엘리먼트만 볼게 아니라 여러가지 가능성이 있음을 생각해야될 것이다.
findOne vs findAll 문제점 Sequelize의 쿼리 method 중 데이터 조회시 findOne 혹은 findAll을 사용하는데 이때 조회할 데이터가 없는 경우 두 방식에서 차이가 생긴다. findOne은 null을 findAll은 {}를 반환한다. null이 반환되는 경우 service나 controller 계층에서 잘 모르겠는 오류가 발생한다. 시도해본 것들 굳이 findOne을 쓰지 않고 findAll을 사용한다. findOne을 쓰면서 repository 계층 내에서 if문을 통해 데이터가 없는 경우 {}를 반환하도록 한다 해결 두번째 방식으로 해결했다. 알게 된 점 Sequelize의 쿼리로 조회하는 방식에 저런 차이가 있다는 것을 알게 되었다. 하지만 근본적인 해결책은 아닌 것 ..
JWT 토큰 프론트에서 활용 문제점 로그인시 JWT토큰을 생성하고 미들웨어에 활용하는 법을 익혔으나, 프론트와 백엔드를 연결할 때 이를 이용하지 못함 시도해본 것들 쿠키를 이용해서 해보기?, 새로운 미들웨어를 만들어보기, ... 해결 프론트의 script 부분에서 localstorage를 이용하여 로그인, 로그아웃을 구현하고, header 값을 주어 미들웨어를 사용할 수 있게 함 로그인 if (localStorage.getItem("token")) { getSelf(function () { alert("이미 로그인이 되어있습니다."); window.location.replace("/"); }); } function sign_in() { let nickname = $("#nickname").val(); l..
The four Fs FACTS Node.js 심화 주차 원격 강의 완강 캐시 CS 특강 수강 새 팀 프로젝트 시작 및 S.A 작성 FEELINGS 입문, 숙련 주차는 정말 할만 했었는데 심화 주차에 들어오자마자 큰 고비를 느꼈다. 아키텍쳐 구조와 테스트 코드에 대한 내용들이 생각보다 머리에 잘 들어오지 않았다. 계속 반복 학습하며 프로젝트 적용할 수 있도록 해야할 것이다. 팀원분들도 다들 같은 어려움을 겪고 있는 것 같아 프로젝트에 걱정이 많지만, S.A를 작성하며 계획을 하다보니 기대가 되기도 한다. FINDINGS 객체지향 프로그래밍, 3계층 아키텍쳐 패턴, 테스트 코드에 대한 이해 캐시에 대한 이해 체계적인 S.A 작성과 역할분담, GitHub와 DB 세팅을 수월히 진행하게 됨 FUTURE 이번 ..
Node.js 심화 프로젝트 시작 문제점 팀원들과 함께 계획을 수행하면서 아직 부족한 부분들에 대해 어떻게 해야할지 걱정이 많았음 시도해본 것들 튜터님께 질문(해주신 희서님께 감사드립니다.) 알게 된 점 당장 배운걸(3계층 아키텍쳐, 테스트 코드) 바로 처음부터 적용하는 것은 이상적이지만 꼭 그럴필요는 없다. 기존 방식 대로 열심히 만들다가 어느 정도 만들어진 뒤에 합치면서 리팩토링을 수행하고 이 때 아키텍쳐 구조를 적용시키면 된다. 테스트도 마찬가지. 또한, 이제 몽땅 합치는 것이 아니라 각 기능별로 나뉘어지는 것을 원하기 때문에 오히려 좋다! 작성중인 팀 노션 페이지 프로젝트 문서(제출용) 1. 프로젝트 소개 www.notion.so
Node.js 심화주차 원격 강의: Javascript 테스트 프레임워크 Jest 테스트 코드 작성을 위한 jest 세팅 1. jest 모듈 설치 npm init -y npm i jest -D 2. package.json 파일 수정 → npm test 명령어로 쉽게 jest 실행 가능 { ... "scripts": { "test": "jest" }, ... } 3. 테스트 코드를 작성할 파일 생성 일반적으로 "테스트할파일이름.spec.js"로 네이밍 프로젝트 디렉토리 예시
- Total
- Today
- Yesterday
- 24723
- 2738
- 4134
- 13909
- 26069
- MySQL
- Programmers
- 백준
- Python
- SQL
- 10807
- 항해+
- 13241
- 20920
- 24313
- programmer
- 2053
- 1269
- 25501
- 코육대
- 항해 플러스
- 25192
- til
- 벡준
- 17103
- 5597
- Wil
- 2903
- 24060
- 2587
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |