객체에 대한 타입을 지정해야하는 경우,const 이름: PositionType = { name: "김사과", age: "12",}; 각각 해당 key와 value에 맞는 타입을 지정해줄 수 있다.//타입으로 선언type PositionType = { name: string; age: string;};const 이름: PositionType = { name: "김사과", age: "12",};//인터페이스로 선언interface PositionType { name: string; age: string;}const 이름: PositionType = { name: "김사과", age: "12",}; 하지만 만약 지정해야 되는 타입이 너무 많고, 모든 key와 value의 타입이 동일하다면 다..
프로그래밍
책 소개이 책을 한 줄로 정의하면 ‘개발자가 되기 위해 기본적으로 알아야 할 IT 기술, 환경에 관한 넓고 얕은 지식’이다. 어렵게 머리를 싸매고 읽어야 하는 부담스러운 IT 책이 아닌, 개발자가 알아야 하는 꼭 필요한 개념과 용어를 인문 도서처럼 술술 읽을 수 있게 설명하였다. 개발자가 되기 위해 알아야 할 것은 두꺼운 책에나 쓰여 있는 딱딱한 지식이 아니다. 문제를 찾아 해결하기 위한 일련의 과정과 그 속에서 필요한 ‘키워드’와 ‘개념’이다. 이 책은 언어, 프레임워크, 디자인 패턴, 개발도구, 클라우드 등등 넓고 얕은 지식을 통해 검색하는 능력을 키우고 해결하고자 하는 문제를 스스로 찾아갈 수 있도록 도움을 줄 것이다. (yes24 소개문구) 감상평개발에 관심이 생긴 예비 개발자 취준생, 개발에 대..
네트워크 통신에서 데이터를 안정적으로 전송하고자 할 때, 데이터 전송에 대한 요구사항에 따라 '신뢰성'과 '즉시성'을 고려해 프로토콜을 선택해야 합니다. 이 두 가지 측면에서 가장 널리 사용되는 프로토콜 중 두 가지인 TCP 와 UDP 에 대해 알아봅시다.TCP (Transmission Control Protocol)TCP는 데이터를 신뢰성 있게 전송하기 위해 사용되며 중요한 데이터를 확실하게 보내야 할 때에 적합합니다. 통신하는 컴퓨터 끼리 응답을 주고 받았는지 확인하는 과정을 거치면서 데이터를 전달해 신뢰성을 높입니다. 연결지향성: TCP는 연결 지향적인 프로토콜입니다. 데이터를 전송하기 전에 연결 설정 단계를 거치고, 연결 설정이 완료된 후에 데이터를 전송합니다. 이 과정에서 3-way hands..
자료구조란?자료구조는 자료에 대한 처리를 효율적으로 수행할 수 있도록 구분지어 놓은 것을 말한다. 짐을 정리해서 공간을 확보하는 것처럼'자료구조'를 이용해 데이터를 잘 정리해 놓으면 데이터를 보다 효율적으로 저장하고 관리할 수 있다. 코드의 처리 시간을 단축시키고 메모리의 용량도 줄여주는 효과를 가져오는 것이다. 자료구조의 종류자료구조는 크게 선형구조와 비선형구조로 나눌 수 있다.선형구조1. 선형 리스트(Linear List)배열(Array)가 여기에 해당한다. 배열은 입력된 데이터가 메모리 공간에서 연속적으로 저장되어 있는 구조이다. 연속적으로 저장되어 있는 특징 때문에 index를 통한 접근이 용이하나 배열의 처음 또는 중간에 데이터의 삽입, 삭제는 번거롭다.2. 연결 리스트(Linked Li..
어떤 특정 값을 찾아야 한다면 해시테이블 구조를 고려해보자.배열은 순서가 중요한 경우에 유용할 수 있으나, 해시 테이블은 키-값 쌍을 다룰 때 더 빠르게 검색할 수 있는 장점이 있다.// 배열을 이용한 방식let countriesArray = ["a", "b", "c", "d"]; // 하나씩 배열을 돌면서 찾음배열을 사용한 방식은 각 요소를 찾을 때 O(N)의 시간 복잡도가 소요된다.배열이 매우 크거나 효율적인 검색이 필요한 경우에는 비효율적일 수 있다. // 해시 테이블을 이용한 방식let countriesHash = { a: true, b: true, c: true, d: true,}; countriesHash["a"]; // true // 단번에 찾을 수 있음해시 테이블을 사..
가독성 좋고 읽기 쉬운 코드란 무엇일까?좋은 코드에 알아보기 위해 피해야 할 '나쁜 코드'에 대해 먼저 알아보자나쁜 코드간단히 말하면 이 코드를 읽고 해석하면서 고칠 바에는 내가 처음부터 다시 짜는게 더 나은 상태를 말한다. 1. 너무 긴 코드하나의 함수 또는 클래스에 너무 많은 기능이 들어가 코드가 너무 길어지면 어떤 기능을 하는지 파악하기 어려워 혼동을 준다.2. 너무 많은 if절 3개만 써도 흐름을 파악하기 어렵다function complexFunction(value1, value2, value3) { if (value1) { if (value2) { if (value3) { // 중첩된 조건이 충족되었을 때 수행하는 코드 ..
우선 두 가지에 대해 알아보기 전에 컴파일 타임과 런타임에 대해 알아야한다.컴파일 타임작성한 코드를 컴퓨터가 이해할 수 있는 언어인 '기계어'로 모두 바꾸고 실행한다.컴파일 타임을 사용하는 언어를 '컴파일 언어'라 하며, C, C++, JAVA 등이 있다. 런타임프로그램을 실행할 때 한 줄씩 읽고 해석한 뒤 실행한다. 런타임을 사용하는 언어를 '인터프리터 언어' 라고 하며 자바스크립트, 파이썬 등이 있다. 컴파일 언어는 모든 코드를 기계어로 번역한 다음에 실행하기 때문에, 런타임 언어보다 속도가 20-100배 이상 빠르지만 편의성은 떨어져 개발속도는 인터프리터 언어보다 느리다는 단점이 있다. 인터프리터 언어는 컴파일 과정이 없나요? 하고 궁금할 수도 있는데 어떤 언어든 101011 같은 이진수로 작성하..
1. 무한스크롤이란? 무한스크롤은 웹 페이지에서 사용자가 스크롤을 할 때 새로운 콘텐츠가 끊임없이 로드되어 나타나는 디자인 패턴을 의미한다. 페이지 전환 방식과는 달리 사용자는 페이지 이동없이 계속해서 새로운 정보에 접근할 수 있다. 주로 소셜 미디어 피드, 뉴스 웹사이트, 온라인 쇼핑몰 등에서 널리 사용되고 있다. 2. 무한스크롤의 동작방식무한스크롤은 스크롤의 길이를 감지해, 스크롤이 하단에 도달하면 자동으로 데이터를 불러오는 방식으로 동작한다.스크롤이 내려가는 동시에 새로운 데이터를 패칭하기 때문에 사용자는 끊임없이 콘텐츠를 접할 수 있다. 3. 무한스크롤의 이점성능 최적화: 한 번에 많은 양의 데이터를 가져오지 않고, 필요한 만큼만 동적으로 불러와서 효율적인 성능을 유지할 수 있다. 이는 초기 ..
1. 쿠키우리가 흔히 사용하는 웹 사이트들은 HTTP 프로토콜을 이용하여 통신한다. HTTP는 비연결성 특징을 가지고 있어 항상 연결된 상태가 아니라, 필요할 때마다 요청을 보내고 응답을 받는 방식이다. 이러한 특성으로 인해 웹 브라우저는 사용자의 상태를 유지하고 관리하기 위해 '쿠키'라는 데이터를 활용한다. 예를 들어 웹 서버로 로그인 요청을 보내면, 서버는 로그인 요청에 대한 응답과 함께 브라우저에서 저장할 정보를 보낸다. 브라우저는 그 정보를 쿠키로 저장해 두었다가 다음에 웹 서버에 연결할때 저장해 두었던 쿠키를 송신함으로써 서버는 연결을 시도하는 상대가 누구인지 식별할 수 있다. 쿠키는 사용자 인증용도 뿐만 아니라 언어 정보, 야간모드, 사용자 팝업창 설정( 오늘 하루동안 열지않음) 등 다양한 처..
OSI 참조 모델이란?통신 기능의 역할을 계층적으로 분류한 개념 각 층의 역할은 서로 다르며 독립적으로 작동한다. 때문에 인접한 층에 영향을 주지 않아 층별로 문제를 해결할 수 있다.예를 들어 전파를 받지 못하면 물리층이 이상하다고 판단할 수 있는 것이다.레이어 7애플리케이션층- 사용자와 상호 작용하는 응용 프로그램에 직접적으로 서비스를 제공한다.- 이메일, 파일 전송, 웹 브라우징 등의 응용 프로그램이 이 계층에서 동작한다.레이어 6프레젠테이션층- 애플리케이션 데이터를 통신 가능한 방식으로 변환한다.- 데이터의 형식 변환, 코드 변환, 데이터 암호화 등의 역할을 한다.레이어 5세션층-이론적인 통신로(세션)를 관리한다. (세션의 시작, 종료, 동기화 등)- 데이터 교환을 관리하고 동기화를 유지레이어 4트..