본문 바로가기

verdantjuly/Today I Learned

TIL 20230712

728x90

Event

null

 

생활 계획표

 

AM 3:00 프로그래머스 Lv.2

AM 4:30 공부

PM 2:30 산삼 팀 회의

PM 3:00 페어 프로그래밍

PM 4:00 공부

PM 12:00 취침

 

이번 주 목표

수요일 : 자바스크립트 문법 종합반 강의 자료

목요일 : 노드 입문 강의자료
금요일 : 노드 숙련 강의 자료

토요일 : 노드 심화 강의자료

일요일 : 노드 테스트 코드 강의 자료

 

- 잡담 줄이기

- 매 시간 몰입하기 

오늘 목표

TIL 작성

TIL 리뷰

프로그래머스 Lv.2

자바스크립트 문법 종합반 강의 자료 3~5주차

 

오늘 한 것

TIL 작성

TIL 리뷰

프로그래머스 Lv.2 1문제

최댓값과 최솟값 : https://verdantjuly.tistory.com/303

자바스크립트 문법 종합반 강의 자료 5주차까지

노드 입문 chapter 7까지

노드 숙련 2-6까지 

Lv.5 service layer 수정

1. REPL

문제

REPL 이 뭔지 모른다.

시도

예측 : 콘솔창 같은 것 같다. 짧은 코드를 바로 구현해 볼 수 있는...

해결

REPL은 Read-Eval-Print-Loop의 약자

애플리케이션 실행 상태에서 사용자가 입력한 명령어(소스코드)를 읽고(Read) 명령어를 평가(Eval)하고 결과를 출력(Print)한 다음 다시 입력을 기다리는 상태로 돌아가는 과정을 반복(Loop)합니다.

 

참고 자료 : https://developer-talk.tistory.com/542

알게된 것

REPL은 Read-Eval-Print-Loop

 

2. 인터페이스

문제

인터페이스가 뭔지 잘 모르겠다. 헷갈린다. 

시도 

예측 : 하나의 사용 환경을 말하는 것 같기도 하다.

해결

서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면

사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템

알게 된 점 

인터페이스 : 시스템이나 장치 사이의 매개 시스템

 

3. controller 에서의 if문

문제 

if문을 처리하는 것은 비즈니스 로직이기 때문에 service layer가 더 알맞다고 한다.

시도 

미들웨어를 만들어서 유효성 검사를 진행하고 res를 보내준다.

해결 

튜터 님 : service layer에서 status 숫자를 그대로 리턴하여 해 보세요.

알게 된 점

 

4. Invalid status code : undefined

문제

시도 

눈 빠지게 오타를 찾았다.

 

해결

서비스 레이어를 수정하면서 Posts를 models에서 가져오지 않았다...

const { Posts } = require("../models");

알게 된 점

시작점이 undefined라면 끝까지 undefined가 나온다.


페어 프로그래밍

 

Layerd Architecture Pattern의 전반적인 흐름

 

시작 / router > controller > service > repositroy > service > controller / 끝

 

0. router: API (post, get, delete, patch, put)

 

1. controller

 

request 요청

req.body : json 형식 > {title : "제목"}

req.params : localhost:3000/api/posts/1  > posts/:postId

req.query : localhost:3000/api/posts?postId=1

response 응답

res.status(status).json({message})

 

2. service

 

password 같은 정보의 가공,

예외처리 (error)

status 400, 200

json : {message : 게시글 작성에 성공했습니다}

 

3. repository

 

CRUD (DB에 유일하게 접근)

sequelize :

create(Create),

findAll / findOne (Read)

Update(Update)

Destroy (Delete)

 

 

  • 게시글 작성 라우터 부분

수정, 삭제, 생성 등 회원 정보가 필요한 기능에는 authmiddleware를 넣어서 인증을 꼭 거쳐야 한다!

// posts.route.js

const express = require("express");
const router = express.Router();

const authmiddleware = require("../middlewares/auth-middleware.js");
const PostsController = require("../controllers/posts.controller");
const postsController = new PostsController();

router.get("/posts", postsController.viewpostslist);
router.get("/posts/:postId", postsController.viewonepost);
router.post("/posts", authmiddleware, postsController.createPost);
router.patch("/posts/:postId", authmiddleware, postsController.editPost);
router.delete("/posts/:postId", authmiddleware, postsController.deletePost);

module.exports = router;

정리 

REPL은 Read-Eval-Print-Loop

인터페이스 : 시스템이나 장치 사이의 매개 시스템

시작점이 undefined라면 끝까지 undefined가 나온다.

 

체크리스트

[ O ] 예쁜 말로 협업하였는가?

[ O ] 12시간 동안 몰입하였는가?

[ O ] 코딩 시 복사 + 붙여넣기를 하지 않았는가?

[ O ] 친절한 개발자였는가?

[ O ] 오늘을 평가하였을 때 주니어 개발자가 될 수 있겠는가?

새벽 3시에 일어나서 지금까지 열심히 해서 목표 분량을 달성하고 추가 공부를 하고 있는 스스로 칭찬한다.

KPT

Keep

조언과 피드백을 받아들이는 자세

개선하려고 노력하는 자세

 

Problem

공격적인 말투

TIL 및 몰입 시간 꽉꽉 채우기

 

Try

부드러운 말투

죽기 살기로 TIL

무조건 무언가 하면 적자

소감

동생네 회사에서 신입 개발자가 수습 종료하게 되었다는 소식을 들었다.

공부도 공부지만 사회생활을 하는 것도 중요한 것 같다.

입을 다물고 열심히 하는 습관을 기르자.

 

매니저님께서 사비!!로 사 주신 커피를 마시면서 카공!!! 파이팅하자~

 

 

 

'verdantjuly > Today I Learned' 카테고리의 다른 글

TIL 20230714  (0) 2023.07.14
TIL 20230713  (0) 2023.07.13
TIL 20230711  (0) 2023.07.11
TIL 20230710  (0) 2023.07.10
TIL 20230709  (0) 2023.07.09