분류 전체보기
-
[CS] Http통신과 Socket통신의 차이점CS 2023. 4. 19. 10:56
1. Http 통신의 특징 - Hyper Text Transper Protocol의 약자. (데이터를 대부분 text로 주고 받음) - 웹 서비스에서 Client - Server 간의 정보를 요청(request) / 응답(response)받기 위해 만들어진 프로토콜 - Client가 요청이 있을때만, Server에서 응답을 반환(단방향 통신) - Statefuless protocol - Server가 Client의 상태를 저장하지 않음(데이터 1회 요청시 Connect / Close 반복) - 반드시 DB(레디스 등 메모리 DB 포함)를 거쳐 데이터를 주고 받음 - 서버 자체의 메모리에 유저 데이터를 들고 있지 않음 2. Socket 통신의 특징 - 패킷이라는 형식화된 데이터 메모리 단위를 주고 받아 통..
-
[CS] 메모리란?CS 2023. 4. 17. 09:20
1. 컴퓨터에서 메모리란? - 프로그램에서 데이터를 저장할 수 있는 공간 2. 메모리의 종류와 할당 방식 전역변수 Static 변수 - 데이터 영역(프로그램 실행 시 로딩, 별로 안 중요함) 프로그래머 할당(런 타임에 크기 결정) - 힙(Heap) 영역 지역변수, 매개변수(컴파일 타임에 크기 결정) - 스택(Stack) 영역 // 힙에 데이터 할당 void testHeap(){ class A = new class(); } // 스택에 할당 void testStack(){ class B; } new로 Heap에 할당한 메모리가 중요하다! (스택에 할당 되는 것은 나가면 바로 죽음) 3. 메모리가 중요한 이유 - 메모리는 무한하지 않다. 즉 관리가 필요하다. - 프로그램이 종료되면, 할당된 모든 메모리는 날..
-
[Programmers] 멀쩡한 사각형Algorithm 2023. 3. 31. 08:50
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 몫과 나머지를 나누어서 푼다. 가로와 세로중 큰걸 작은걸로 나누어서 한칸 지날때마다 얼마나 영역을 차지하는지 계산한다. 예를 들어, w=8, h=12면 작은 w기준으로 첫번째 칸에서는 12/8 = 1 … 4 → 두칸 차지한다. 다음 칸은 1과 4/8 + 1과 4/8해서 3이기 때문에 → 두칸 차지한다. 즉, 분수의 덧셈을 계속해서 나머지가 0이면 정수부의 next - prev..
-
[Programmers] 조이스틱(JS)Algorithm 2023. 3. 31. 08:48
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 String.charCodeAt() 이용 문자열을 아스키코드로 변환한다. 왼쪽에서부터 오른쪽으로 이동하면서 A와 비교해서 오름차순이 이득인지 내림차순이 이득인지 판단하여 더 이득인쪽을 더한다. 0부터 length-1까지 시작한 index를 기준으로 연속된 A를 파악해 처음부터 오른쪽으로 쭉 가는게 이득인지 오른쪽으로 갔다가 멈춰서 반대편으로 돌아서 연속된 A가 끝나는 지점까지..
-
[React] React Architecture 정리FrontEnd/React 2023. 3. 7. 09:56
1. MVC 아키텍처 Model(데이터) - View(화면) - Controller(컨트롤러) Model의 데이터를 받아서 화면에 그리고, 화면으로부터 사용자의 동작을 받아 Model을 변경 Ajax로 부터 받는 데이터를 Model HTML과 CSS로 만들어지는 화면을 View javascript가 데이터를 받아 조작하여 서버에 전달하는 Controller의 역할을 수행 Model과 View의 종속성을 최대한 분리하기 위해 HTML과 jQuery를 따로 관리하는 것이 주효 Ajax를 통해 서버에서 HTML을 만들지 않고 데이터만 교환이 가능하게 되었고 JS로 DOM을 조작하는 작업이 중요함에 따라 jQuery를 통해 Ajax와 DOM을 다루게 됨 2. MVVM 아키텍처 선언적(Declarative) 프로..
-
[React] React-Query의 개념 및 예제FrontEnd/React 2023. 3. 2. 11:27
React Query는 API 통신과 비동기 데이터 관리에 사용되는 React 라이브러리 입니다. 1. React-Query 이전 state에 비동기 데이터를 보관할 경우 다수의 component의 lifecycle에 따라 비동기 데이터가 관리되기 때문에 캐싱 등 최적화를 하기 어려움 다수의 component에서 동일한 API를 호출하거나, 특정 API응답이 다른 API에 영향을 미치는 경우 등에 대응하기 어려움 Redux를 사용하여 비동기 데이터를 관리할 경우 componet의 lifecycle과 관계없이 비동기 데이터를 관리할 수 있어 최적화가 쉬우며 복잡한 사용자 시나리오에도 대응 가능 장황한 Boilerplate 코드로 인해 비동기 Action 처리에 복잡성 증가 Redux는 API 통신 및 비동..
-
[BlockChain] 블록체인이란?BackEnd/BlockChain 2023. 2. 22. 16:55
1. 블록체인 데이터 분산 처리 기술 네트워크에 참여하는 모든 사용자가 모든 거래 내역 등의 데이터를 분산, 저장 블록들을 체인형태로 묶은 형태 기존의 거래 방식은 중앙 서버가 모든 거래 내역을 가지고 거래 내역을 검증한다면, 블록체인은 여러 명이 거래 내역을 나누어 저장 중앙 관리자가 필요 없음 2. 블록체인의 특징 Cryptohraphically secure 복잡한 수학적 알고리즘으로 보호되어 안전하다. Transitional singleton machine 블록체인 네트워.크에 참여하는 노드들이 동일하게 공유하는 단일 시스템이 존재한다. With shared state 위 단일 시스템은 모두에게 공유되고 오픈되어 확인할 수 있다. 3. 스마트 컨트랙트 일반적인 프로그램과 흡사 블록체인 네트워크 위에..
-
[BlockChain] 이더리움 개념 정리 - (1)BackEnd/BlockChain 2023. 2. 22. 16:22
1. 이더리움 네트워크의 종류와 특징 메인넷 테스트넷 테스트를 위한 임시 네트워크 모두에게 공개된, 테스트를 위한 네트워크 2. 클라이언트 이더리움 네트워크를 구성하는 개별 노드 이더리움 네트워크에는 클라이언트만 존재 3. 프로바이더 이더리움 네트워크에 대한 연결을 위한 추상화를 제공하는 클래스 블록체인에 대한 읽기 전용 액세스 제공 개인이 노트가 될 수 없기 때문에 네트워크의 정보를 대신 제공 특정한 형식으로 항상 요청해야하기 때문에 형식으로의 변경을 도와주는 Ethers.js 라이브러리 존재 4. 지갑 이더리움 계정과 상호 작용할 수 있는 애플리케이션 인터넷 뱅킹 앱과 비슷하지만 은행은 없음 5. 수도꼭지(Faucet) 테스트넷에서 사용자 지갑에 무료로 토큰을 추가할 수 있도록 해주는 웹 서비스 6...