본문 바로가기

전체 글66

#1. 시간복잡도와 공간복잡도 시간 복잡도 알고리즘이 입력 크기에 따라 실행에 필요한 시간을 측정한다. 알고리즘이 입력 크기가 커질수록 얼마나 느려지는지 예측되는지 도움이 되며, 일반적으로 시간 복잡도는 입력 크기의 함수로 표현된다. 알고리즘의 시간 복잡도를 나타내는 표기법은 Big-O 표기법 이다. 시간 복잡도가 O(1)인 경우 알고리즘이 실행되는 동안 입력의 크기에 상관없이 일정한 시간만큼 걸린다는 것을 의미한다. 즉, 입력의 크기가 증가하더라도 알고리즘의 시간은 일정하다는 것이다. 또한 O(n) 에서 n 이 1에 가까울 수록 알고리즘의 실행시간이 짧아진다. 상수 시간 복잡도(Constant time complexity) 알고리즘의 실행 시간이 입력 크기와 무관하게 일정한 상수 시간이 걸리는 경우 예를 들어 배열에서 인덱스를 찾는.. 2023. 2. 19.
실전 프로젝트 Helpus - #2 게시글 개발 게시판 게시글 기능 게시판 CRUD 기능 을 개발하기 위해 게시글 생성, 조회, 수정, 삭제 기능을 개발했다. 항해 기간을 거치면서 CRUD 에 많이 익숙해졌지만 처음 써보는 타입스크립트와 프리즈마 때문인지 초반에 애를 많이 먹었다. 하지만 금세 적응하기 시작했고, 점차 속도가 붙었다. 시퀄라이즈보다 직관적이고 관계 설정이 상대적으로 쉬운 프리즈마와, 에러를 사전에 방지할 수 있는 타입스크립트의 시너지로 에러를 해결하는 데에 시간이 눈에 띄게 줄어들었다. 기본적인 게시판 기능에서 게시글 찜하기, 게시글 조회 시 찜 개수 보여주기, 카테고리 별로 게시글 보여주기, 무한 스크롤을 추가했는데 시퀄라이즈를 사용했을 때보다 훨씬 짧은 시간에 기능구현이 완료됐다. 깃 컨벤션 지금껏 협업을 하면서 깃컨벤션을 고려하지.. 2023. 1. 2.
Sequelize paranoid(삭제-복구) Paranoid sequelize 의 paranoid 는 컴퓨터의 휴지통 개념처럼 데이터를 완전히 삭제하는게 아닌 삭제 후 복구가 가능하도록 새로운 필드 속 넣어 두는 것이다. models 설정 'use strict'; const { Model } = require('sequelize'); module.exports = (sequelize, DataTypes) => { class Posts extends Model { /** * Helper method for defining associations. * This method is not a part of Sequelize lifecycle. * The `models/index` file will call this method automatically. .. 2022. 12. 24.
컨트롤러(Controller) 컨트롤러 컨트롤러는 클라이언트의 요청을 처리한 후 서버에서 처리된 결과를 반환해주는 역할을 한다. 클라이언트의 요청을 수신하고, 요청에서 들어온 데이터 및 내용을 검증한 뒤 서버에서 수행된 결과를 클라이언트에 반환한다. 프레젠테이션 계층(Presentation Layer) 프레젠테이션 계층은 대표적으로 컨트롤러로 사용된다. 사용자가 서버에 요청을 하게 되면 가장 먼저 만나게 되는 계층이다. 하위 계층(서비스 계층, 저장소 계층) 에서 발생하는 예외(Exception)를 처리한다. 클라이언트가 전달된 데이터에 대해 유효성을 검증하는 기능을 수행한다. 클라이언트의 요청을 처리한 후 서버에서 처리된 결과를 반환한다. Express 에서의 컨트롤러 클라이언트의 요청을 받음 요청에 대한 처리는 서비스에 전달 클라.. 2022. 12. 10.
반응형