전체 글
-
REST API란 무엇인가?Dev/cs 2024. 4. 22. 23:03
REST API란 무엇인가? REST API란 REST를 기반으로 만들어진 API를 의미한다. REST API를 알기 위해 REST부터 알아야 한다. REST REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미. HTTP URI를 통해 자원을 명시하고, HTTP Method (POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD OPERATION을 적용하는 것을 의미한다. 참고 : PUT vs PATCH PUT : 리소스의 모든 것을 업데이트 한다. 덮어씌운다는 느낌. 보내지 않은 데이터는 null로 반환. PATCH : 리소스의 일부를 업데이트 한다. 일부를 수정하는 느낌. 보낸 데이터..
-
호이스팅이란?Dev/Javascript 2024. 4. 22. 23:01
호이스팅(Hoisting)이란, var 선언문이나 function 선언문 등을 해당 스코프의 선두로 옮긴 것처럼 동작하는 특성을 말한다. 자바스크립트는 ES6에서 도입된 let, const를 포함하여 모든 선언(var, let, const, function, function*, class)을 호이스팅한다. 아래는 가장 대표적인 예시이다. console.log(a); // undefined var a = 1; 선언하지 않은 것인데도 에러가 발생하지 않는다. helloWorld(); // Hello World! function helloWorld() { console.log("Hello World!"); } 선언을 하지도 않았는데 함수에 접근할 수 있다. 왜 그런 것일까?? 자바스크립트에서의 변수는 선언 단..
-
클로저란 무엇일까? 간결하게 정리Dev/Javascript 2024. 4. 22. 23:00
클로저를 쉽게 이해하기 위해서는 배경지식이 필요하다. 먼저, 실행 컨텍스트를 알아야한다. 함수는 호출 될 때 함수의 실행 컨텍스트가 생성됐다가 실행이 끝나면 실행 컨텍스트가 종료된다. 이때 실행 컨텍스트의 lexical environment에는 함수의 지역 변수의 정보와 이 함수의 상위 스코프의 대한 정보가 들어있다. (scope chain) 클로저란? 함수가 생성 될 때 주변 환경의 상태를 기억하여(lexical environment) 나중에 호출될 때 그 값에 접근할 수 있는 것을 말한다. 예제를 보자면, function makeCounter() { let count = 0; function inner() { count++; return count; } return inner; } let counte..
-
트랜잭션과 무결성Dev/DB 2023. 8. 28. 19:24
트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하시 위한 작업의 단위를 말한다. 데이터베이스에 접근하는 방법은 쿼리이므로 여러개의 쿼리들을 하나로 묶는 단위를 말한다. 트랜잭션을 제대로 알기 위해서는 원자성(atomicity)를 알아야 한다. 원자성은 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징이다. 커밋 커밋(commit)은 여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어이다. 변경된 내용이 모두 영구적으로 저장되는 것이다. "커밋 수행 완료 = 하나의 트랜잭션 성공" 을 뜻한다. 롤백 롤백(rollback)은 트랜잭션으로 처리한 하나의 묶음 과정을 일어나기 전으로 돌리는 일을 말한다. 일부가 정상적으로 처리되었더라도 트랜잭션의 원자성을 구현하기 위해 이 트랜잭션이 ..
-
데이터 베이스 기본 개념Dev/DB 2023. 8. 28. 18:25
데이터베이스는 일정한 규칙, 혹은 규악을 통해 구조화되어 저장되는 데이터의 모음이다. 해당 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 한다. 데이터베이스가 있고, 그 위에 DBMS가 있고 그 다음 응용프로그램들이 있다. 이러한 구조를 기반으로 데이터를 주고 받는다. 엔터티 엔터티(entity)는 여러개의 속성을 지닌 명사를 의미한다. 예를 들어 회원이라는 엔터티가 있다고 가정하면 회원은 이름,아이디,주소 등등의 속성을 가질 것이다. 릴레이션 릴레이션(relation)은 데이터베이스에서 정보를 구분하여 저장하는 기본단위이다. 엔터티에 관한 데이터를 데이터베이스는 릴레이션 하나에 담아서 관리한다. 릴레이션은 관계형 데이터 베이스에서는 '테이블'..
-
네트워크 성능 분석 명령어Dev/cs 2023. 8. 24. 15:36
ping ping은 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어 이다. ping "IP address or Domain address" netstat 접속되어 있는 서비스들의 네트워크 상태를 표시하는데 사용된다. 주로 서비스의 포트가 열려 있는지 확인할 때 쓴다. 접속하고 있는 사이트 등에 관한 네트워크 상태 리스트를 볼 수 있다. nslookup 특정 도메인에 매핑된 IP를 확인하기 위해 사용합니다. nslookup을 입력 후, > 표시에 원하는 도메인을 입력하면 된다.
-
네트워크 토폴로지(Network topology)Dev/cs 2023. 8. 24. 15:33
네트워크란 노드(node)와 링크(link)가 서로 연결되어있거나 연결되어 있지 않은 집합체를 의미한다. 노드(node)는 서버, 라우터, 스위치 등 네트워크 장치를 의미한다. 링크(link)는 유선 또는 무선을 의미한다. 네트워크 토폴로지(network topology) 네트워크 토폴로지는 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태를 의미한다. 트리 토폴로지 노드의 추가, 삭제가 쉬우며 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있다. 버스 토폴로지 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성을 말한다. 근거리 통신망(LAN)에서 사용한다. 설치 비용이 적고, 신뢰성이 우수하며 노드를 추가하거나 삭제하기 쉽다. 하지만, 스푸핑이 가능한..
-
디자인 패턴 - MVC 패턴은 무엇인가?Dev/cs 2023. 8. 23. 11:25
MVC 패턴은 모델(Model), 뷰(View), 컨트롤러(Conttroller)로 이루어진 디자인 패턴입니다. 재사용성과 확장성이 용이하다는 장점이 있지만, 어플리케이션이 복잡해질수록 모델과 뷰의 관계가 복잡해지는 단점이 있습니다. MVC패턴을 이해하기 쉽게 정리하려고 한다. 모델 데이터 저장소(ex. DB)와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다루는 영역. 비즈니스 로직 및 데이터를 다룹니다. 뷰 모델이 처리한 데이터나 그 작업 결과를 가지고 사용자에게 출력할 화면을 만드는 영역. input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스(UI) 요소를 나타냅니다. 컨트롤러 데이터와 사용자인터페이스 요소들을 잇는 다리역할을 합니다. 사용자가 데이터를 클릭하고, 수정하는 ..