작은 도서관
article thumbnail
에러 메세지
개발/칼럼읽기 2025. 5. 22. 12:49

에러의 분류서버측 에러상태코드 5XX으로 대표되는, 백엔드 개발자나 서버 어드민이 관심을 가져야하는 오류를 뜻한다.주로 서버 내부 로직의 잘못된 작성, DB 오류, 외부 API 연결 실패 등이 해당 에러를 발생시킨다.사용자측 에러상태코드 4XX으로 대표되는, 사용자측의 잘못된 요청으로 인한 오류를 뜻한다.주로 인증 실패, 유효성 검사 실패, 토큰 변조, 권한 없음, 매개변수 누락 등이 해당 에러를 발생시킨다.에러 메세지 구조 정의위의 두 에러는 전부 백엔드에서 프론트엔드로 반환해야하는 에러이기 때문에 백엔드에선 일관적인 에러 포맷을 반환해야 한다.예시로, 다음과 같은 포맷을 사용할 수 있다.{ statusCode: number, error: string, message: string, code: stri..

article thumbnail
백엔드와 프론트엔드, 통신
개발/아롬 멘토링 2025. 5. 12. 05:25

클라이언트와 서버클라이언트서비스를 이용하는 쪽으로 일반적으로 서버에 어떤 서비스를 '요청'하여 '응답'을 받는다.사용자가 직접 상호작용 할 수 있는 그래픽 사용자 인터페이스(GUI)가 존재하며, 기술적 관점에서 사용자가 보게되는 유저 인터페이스 혹은 페이지를 문서 객체 모델(Document Object Model), DOM이라고 한다.DOM은 다음 3요소로 구성되는데,레이아웃: DOM의 요소와 요소간의 구조를 정의한다. 주로 HTML이 사용된다.디자인: 레이아웃, 글꼴, 색상, 크기등의 디자인을 정의한다. 주로 CSS가 사용된다.(동적) 기능: DOM을 조작하여 동적 기능 계층을 정의한다. 주로 Javascript가 사용된다.웹 개발에선 프론트엔드가 이에 해당한다.서버서비스를 제공하는 쪽으로 일반적으로 ..

[javascript] 비동기
개발/아롬 멘토링 2025. 4. 14. 03:35

비동기 프로그래밍이란 실행 시간이 오래 걸리는 함수를 실행할 때, 해당 함수의 작업이 종료되는것을 기다리지 않게 하는 기술이다.자바스크립트에서는 일부 함수, 예를 들어,fetch(). 다른 서버에 HTTP 요청을 보냄.getUserMedia(). 사용자의 미디어에 접근(권한 요청 필요)setTimeOut(). 지정한 시간만큼 대기처럼 시간이 오래 걸리는 동작이 있기 때문에, 이 때 비동기 프로그래밍이 유용하게 사용될 수 있다.비동기함수비동기함수 setTimeout()은 인자로 숫자 하나를 받으며, 해당 수 ms만큼 작업을 지연시킨다.console.log("프로그램 실행")// 이 함수의 첫 번째 인자로 들어가는 빈 함수는 '콜백'이라고 하는데, 이에 대해서는 후술.setTimeout(() => {}, 3..

[javascript] 함수, 클래스, 메서드
개발/아롬 멘토링 2025. 4. 7. 03:51

함수function 키워드로 선언하며 return 키워드로 값을 반환한다.function func1(var1, var2...) { // do something return}만약 함수가 아무런 값도 반환하지 않거나, return 뒤에 값이 없다면 undefined를 반환한다.매개변수js의 모든 함수는 0개 이상의 이름이 있는 매개변수를 가질 수 있다.만약 미리 선언되지 않은 n개의 '나머지 매개변수(rest parameter)'를 전달받으려면 ...args 키워드를 사용한다.function add(a, b, ...args) { // 1, 2를 제외한 나머지 매개변수는 배열로 args에 전달됨 console.log(args) return a + b;}console.log(add(1, 2, 3, 4, 5..

[javascript] 제어문
개발/아롬 멘토링 2025. 4. 7. 03:12

조건문지정한 조건이 참인 경우 블럭 안의 코드를 실행한다.if ... else제1 분기로 if, 이후 분기는 else if, 기본 분기로 else를 사용한다.if (condition1) { // statement 1} else if (condition2) { // statement 2} else { // default statement}만약 statement가 한 줄 이라면 내려쓰기와 중괄호는 생략할 수 있다.switch특정한 값과의 동등 비교(===)를 통한 분기에 사용된다.switch(var1) { case "A": // 이는 다음과 동일: if (var1 === "A") // statement1 break; case "B": // statement2 break; default: // def..

[javascript] 연산자
개발/아롬 멘토링 2025. 3. 30. 15:55

할당과 산술 연산연산자연산명설명=할당B를 A에 저장함. {A} = {B}+더하기사칙연산-빼기*곱하기/나누기**거듭제곱A의 B승을 구함. {A} ** {B}%나머지A / B의 나머지를 구함.(24 % 7 = 3)관계 비교와 논리 연산이하의 연산자들은 모두 Boolean값을 반환한다.연산자연산명설명, >=크기 비교A와 B의 크기를 비교함.==, !=동등, 부등A와 B가 같은지, 다른지 검사. 단, 형 변환 있음("123"==123은 형 변환에 의해 true)===, !==일치, 불일치A와 B가 같은지, 다른지 검사. 단, 형 변환 없음("123"===123은 false)&&ANDA와 B가 둘 다 참이라면 true 반환.||ORA와 B가 둘 중 하나라도 참이라면 true 반환.기타 연산연산자연산명설명? :삼항..

article thumbnail
[javascript] 변수와 타입
개발/아롬 멘토링 2025. 3. 30. 15:38

변수의 선언변수는 다음과 같은 형식으로 선언할 수 있다.[선언 키워드] [변수명] = [값]= (등호)를 사용해 초기화하는게 필수는 아니다.변수의 이름으로는 유니코드 문자셋을 사용하기 때문에 한글로 된 변수명이나 연산자가 아닌 특수문자 만으로도 이름을 사용할 수 있다.변수의 선언 키워드는 다음 세 가지가 있다.var가장 기본적인 변수. 이 키워드로 선언된 변수는 기본적으로 전역 범위를 갖는다. 반복문이나 조건문, 함수 안에서 var를 사용해 선언된 변수는 해당 범위 바깥에서도 사용할 수 있다.let블록 범위 변수. 이 키워드로 선언된 변수는 기본적으로 블록 범위를 갖는다. 반복문이나 조건문, 함수 안에서 let을 사용해 선언된 변수는 해당 범위 바깥에서 사용될 수 없다.const블록 범위 상수형 변수. ..

article thumbnail
[prisma] pagination 구현
개발/개발일지 2025. 1. 21. 17:09

prisma에서 pagination을 구현하는 두 가지 방식을 소개한다.prisma는 orm으로서 갖춰야 할 기능을 여러 메서드로 제공하는데, pagination은 findMany 메서드에서 구현하는 방법을 제공한다.offset 방식offset 방식이란 n개의 데이터를 보여줄 때, 앞에서 {skip}개 만큼 건너 뛴 데이터를 {take}개 만큼 가져오는 방식을 의미한다.prisma.repository.findMany({ skip: number, take: number})실제 사용할때는 skip을 take만큼 증가시키며 사용한다.(위 그림에서, 다음 skip은 7이 될 것이다) cursor 방식cursor 방식이란 데이터를 보여줄 때, 특정 데이터로부터 {take}개 만큼 가져오는것을 의미한다.위 그..