전체 글 14

API 문서화 swagger (feat. 아는 만큼 보이는 백엔드 개발)

API 명세서 (API specification)클라이언트와 서버가 API를 이용해 통신하기위해 어떤 식으로 요청을 보내고 무엇을 응답 데이터로 받을지에 대한 약속을 정리한 문건 URL : 클라이언트가 요청을 보낼 서버 주소 서버에 도메인을 연결하기 전이라 도메인이 없다면 숫자로 된 IP 주소를 작성해도 됨ex) api-dev.inborz.com API 목차 : 모든 API 목록을 표로 정리, 각 API의 메서드, 하위 URI, API에 대한 설명, 명세서 작성 여부, 서버 반영 여부 등의 정보가 담겨있음 (명세서 작성 자체가 협업을 위한 작업이므로 작성 여부의 내용이 담김) IndexMethodURIDescription명세서 작성서버 반영1POST/app/users사용자 생성 (회원가입) APIOKOK..

백엔드 2024.08.01

정렬 총 정리_1

정렬들의 속도를 자료수에 대해 비교해보려고 한다.자료수가 적을때와 클때의 속도가 다른 경우가 있으므로자료수는 100개 10000개 1000000개의 세가지의 경우에서 비교하려고 한다.정렬은 오름차순으로 한다 버블정렬버블정렬은 이중 반복문을 이용해서 이웃한 값끼리 비교를 하면서 정렬을 한다. n[6] = [2,0,1,5,4,3] 라는 배열이 있다면 n[0] n[1]을 비교한다.2 > 0이므로 [0,2,1,5,4,3]로 바꾼다. 이 작업을 배열의 인덱스를 기준으로 끝까지 반복한다. 한번 인덱스를 다 훓으면 [0,2,1,5,4,3] [0,1,2,5,4,3] [0,1,2,5,4,3] [0,1,2,4,5,3] [0,1,2,4,3,5] 순서로 바뀌고제일 큰 수는 무조건 뒤로 간다. 그 다음반복에서는 정렬된 제일 큰..

자료구조 공부 2024.07.13

백엔드 기초 공부_1 네트워크 기초 지식 (feat. 아는 만큼 보이는 백엔드 개발)

백엔드 기초 지식은 이리저리 많이 듣기도 하고 어느정도는 안다고 생각했다..ㅎㅎ근데 프로젝트에서 막상 API 명세서를 작성해보려 하니 아무것도 못하겠어서 책으로 공부를 좀 해보려고 한다. chapter2 .cs 기초 지식 2.1 네트워크 네트워크(network) : 컴퓨터들이 통신망을 통해 서로 그물처럼 연결되어 있는 것인터넷(Internet) : 네트워트가 전 세계적으로 연결된 통신망 2.1.1 IP 주소IP 주소(Internet Protocol adress) : 네트워크에 연결된 각 컴퓨터를 구분하는 유일한 주소4byte로 이뤄진 고유한 값, 1byte씩 10진수로 나타냄ex) 구글 웹사이트의 IP 주소 : 172.217.174.1002.1.2 도메인 네임도메인 네임(domain name) : 사용자..

백엔드 2024.07.02

쿠키와 세션

HTTP 프로토콜의 특징 Connectionless 프로토콜 (비연결 지향)클라이언트가 서버에 요청(Request)을 했을 때, 응답(Response)을 보낸 후 연결을 끊는 처리방식 HTTP 1.1 버전에서 커넥션을 유지하고 요청에 재활용하는 기능이 추가됨HTTP Header에 keep-alive 옵션을 주어 커넥션을 재활용 할 수 있음 (1.1 버전에서는 디폴트 옵션임)                         Stateless 프로토콜커넥션을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는 특성이 있음 클라이언트와 첫번째 통신에서 데이터를 주고받았다 해도, 두번째 통신에서는 이전 데이터를 유지하지 않음하지만, 데이터 유지가 필요한 경우가 많음 정보가 유지가 되지 않으면 페이..

백엔드 2024.06.06

javascript 연산자

산술 연산자(arithmetic operator)두 개의 피연산자를 가지는 이항 연산자, 피연산자들의 결합 방향은 왼쪽 -> 오른쪽산술 연산자설명+더하기-빼기*곱하기/나누기%왼쪽 나누기 오른쪽의 나머지 대입 연산자대입 연산자설명=왼쪽 피연산자에 오른쪽 피연산자 값 대입+=왼쪽 값에 오른쪽 값을 더한 후, 왼쪽 피연산자에 대입-=왼쪽 값에 오른쪽 값을 뺀 후, 왼쪽 피연산자에 대입*=왼쪽 값에 오른쪽 값을 곱한 후, 왼쪽 피연산자에 대입/=왼쪽 값을 오른쪽 값으로 나눈 후, 왼쪽 피연산자에 대입%=왼쪽 값을 오른쪽 값으로 나눈 후, 그 나머지를 왼쪽 피연산자에 대입 증감 연산자(increment and decrement operator) 피연산자를 1씩 증가 혹은 감소시킬 때 사용하는 연산자, 단항 연산자..

javascript 공부 2024.04.30

javascript 타입

기본 타입(data type)원시 타입(primitive type, 1~5) / 객체 타입(object type, 6)숫자(number)문자열(string)불리언(boolean)심볼(symbol)undefined객체(object) 숫자(number)정수와 실수 구분 없음, 모든 수를 실수 하나로만 표현매우 큰 수나 작은 수를 표현할 경우 e 표기법을 사용ex) 10e6 -> 10000000, 10e-6 -> 0.00001 문자열(string)문자열은 큰따옴표나 작은따옴표로 둘러싸인 문자의 집합작은따옴표는 큰따옴표 안에서, 큰따옴표는 작은따옴표 안에서만 사용 가능* 숫자와 문자를 더할 수 있음 : 숫자를 문자열로 자동 변환, 두 문자열을 연결하는 연산을 수행함 불리언(boolean)참(true)과 거짓(f..

javascript 공부 2024.04.30

자바스크립트 시작

자바스크립트 공부를 따로 하지않고 검색으로 해결하려다가 한계가 있다고 생각이 들었다ㅠㅠ그래서 TCP에 있는 내용을 기반으로 공부를 해보려고 한다 공부하는 사이트 : https://www.tcpschool.com/javascript/js_intro_basic 코딩교육 티씨피스쿨4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등tcpschool.com  자바스크립트의 언어적 특징객체 기반의 스크립트 언어동적이며, 타입을 명시할 필요가 없는 인터프리터 언어 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있음컴파일러 언어인터프리터 언어코드가 실행되기 전 단계인 컴파일 타임에 소스코드 전체를 한 번에 머신 코드로 변환한 후 실행함코드가 실행되는 단계인 런타임에..

javascript 공부 2024.04.30

My SQL 명령문

SQL(Structured Query Language) 많이 찾아보게 될거 같아서 머리에 넣을겸 정리를 했다.column은 데이터의 타입row는 데이터 자체 Create   데이터베이스 생성 CREATE DATABASE 데이터베이스 이름;  데이터베이스 사용USE 사용할 데이터베이스 이름;  테이블 생성CREATE TABLE 테이블 이름(    column1 datatype(length) not null auto_increment,    column2 datatype(length) null ,    column3 datatype(length) not null ,    PRIMARY KEY(column1));     datatype은 INT(11), VARCHAR(20), TEXT와 같은 자료형, 괄호 안..

백엔드 2024.04.26

ERD 작성 공부

당장 작성하라니 감이 안잡혀 ERD가 뭔지 어떻게 작성하는지 부터 공부했다ERD란?Entity Relationship Diagram데이터베이스의 구조를 한눈에 알아보기 위해서 쓰임보다 많은 아이디어를 도출하고, 데이터베이스 설계의 이해를 높이기 위해 데이터 모델링을 함데이터의 특징을 확인할 수 있어 요구사항을 그에 맞게 개발할 수 있음Entity (개체)관리하고자 하는 정보의 실체사람, 객체 혹은 개념DB설계 시, 쉽게는 테이블이 Entity로 정의될 수 있음모든 Entity는 하나 이상의 식별자 (UID)를 지녀야 함Weak Entity 개체가 가진 속성들로는 개체를 고유하게 정의할 수 없는 개체ex) 각 교육과정에 분반이 있다고 했을때, 분반이라는 개체는 자신을 정의하는 key가 없고, 각 교육과정에..

트리(Tree)_2

이진트리 ADT 구현과 메쏘드 배열에 기초한 이진트리 1D 배열을 이용한 이진트리 표현 순위 i의 노드의 대해 왼쪽 자식의 위치 순위 2i, 오른쪽 자식의 위치 순위 2i+1, 부모의 위치순위 i/2 0에 관한 연산 오류를 피하기 위해 순의 0셀은 사용하지않음, 사용하지 않는 셀도 표시 널마커('#')나 널포인터 만약 MAX를 노드 순위 중 최대값이라 하면 배열크기 N = MAX로 해야함 배열크기 N = n 인 경우가 최선임 이 경우는 크기 N인 배열의 순위 0을 제외한 모든 셀이 이진트리의 노드를 표현하는 데 사용되어 기억장소의 낭비가 전혀 없는 상황 편향이진트리가 최악의 경우가 됨 연결리스트에 기초한 이진트리 연결리스트에 기초하여 이진트리 저장 각 노드는 원소, 부모노드, 왼쪽 자식노드, 오른쪽 자식..

자료구조 공부 2024.02.19