전체 글

공부와 경험의 기록!
CORS 란 무엇인가 브라우저에서는 보안상의 안전을 위해서 cross-origin HTTP 요청을 제한한다. 따라서 cross-origin 요청을 하기 위해서는 서버 측에서 허용을 해주어야 한다. 이는 HTTP-header 로 구현할 수 있으며, 이를 CORS라고 한다. CORS 가 필요한 이유는 다른 사이트에서 원래의 사이트를 흉내내서 악의적으로 사용되는 것을 방지하기 위함이다. 기존 사이트와 동일하게 동작하게 구현하여 사용자의 정보를 악의적으로 가로채는 등의 공격을 하지 못하도록 CORS를 통해 서버와 클라이언트 간 협의가 필요한 것이다. CROSS-ORIGIN 이란 cross-origin 이란 이들 중 한가지라도 다른 경우를 의미한다. 1. protocol : 프로토콜이 다른 경우이다. ex. ht..
·Algorithm (PS)
https://school.programmers.co.kr/learn/courses/30/lessons/118668 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr kakao 의 공식 해설을 참고했다. https://tech.kakao.com/2022/07/13/2022-coding-test-summer-internship/ 2022 테크 여름인턴십 코딩테스트 해설 2022년 카카오 여름 인턴십 코딩 테스트가 지난 5월 7일에 5시간에 걸쳐 진행되었습니다. 시간이 부족하여 문제를 풀지 못하는 아쉬움이 없도록 1시간을 늘려 테스트를 진행한 것이 작년과 조금 ..
·Algorithm (PS)
https://school.programmers.co.kr/learn/courses/30/lessons/150365?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주의할 점은 이미 방문한 칸도 '재방문'이 가능하다는 것이다. 이러한 경우에, 어처피 2차원 배열 안에서는 상,하,좌,우로만 이동하므로 맨하튼 거리를 이용하는 것이 최단거리가 될 것이다. 따라서 맨하튼 최단 거리를 계산하여 k와 비교해주는 로직이 필요하다. 또한 반드시 문자열은 사전순으로 빠른 순서이어야 하므로 처음부터 상하좌우에 해당하는 알파벳을 사전순으로 정렬한..
Paging 기법과 주소 변환 Paging 기법에서는 프로그램을 구성하는 주소 공간이 동일한 크기의 Page 라는 단위로 잘려서, 각각의 Page가 물리적 메모리의 어디에나 올라갈 수 있다. 각각의 Page들이 어느 위치에 올라가 있는지 알기 위해서는 Page별로 주소 변환이 필요하다. Paging 기법 물리 메모리는 Frame 이라 불리는 같은 크기의 블록으로 나누어진다. 논리메모리는 Page라 불리는 같은 크기의 블록으로 나누어진다. Page Table에서 논리적인 주소에서 물리적인 주소로 주소 변환을 한다. 따라서 Page Table에서는 logical memory 의 개수만큼 entry 가 존재하게 된다. Index를 이용해서 곧바로 접근할 수 있는 자료 구조 형태이다. 각각의 Page는 Code..
·Algorithm (PS)
Question: https://leetcode.com/problems/roman-to-integer/ Roman to Integer - LeetCode Can you solve this real interview question? Roman to Integer - Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 For example, 2 is written as II in Roman numeral, just tw leetcode.com 이게 좋은 풀이인지는 모르겠는데;; 일단 쌩 구현으로 제출해서 accepted 된..
구조적 API 의 종류 Dataset DataFrame SQL Table 과 View DataFrame 과 Dataset 의 특징 공통점 : row 와 column 을 가지는 분산 테이블 형태의 컬렉션 Dataset은 결과를 생성하기 위해 어떤 데이터에 어떤 연산을 적용해야 하는지 정의하는 지연 연산의 실행 계획이며 불변성을 가진다. 스키마에 명시된 데이터 타입의 일치 여부를 컴파일 타임에 확인한다. Dataset 은 JVM 기반 언어인 scala 와 java에서만 지원하며, Dataset의 데이터 타입을 정의하려면 scala case class 나 JavaBean 을 사용해야 한다. DataFrame은 액션을 호출하면 스파크가 트랜스포매이션을 실제로 실행하고 반환함. 스키마에 명시된 데이터 타입의 일치..
Logical vs Physical Address 1. Logical Address (= Virtual Address) 프로세스마다 독립적으로 가지는 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소는 logical address 이다. 2. Physical Address 메모리에 실제 올라가는 위치 3. 주소 바인딩 : 주소를 결정하는 과정 어떤 프로그램이 물리적 메모리 어느 곳에 올라갈지를 결정한다. Symbolic Address -> Logical Address -> Physical Address *Symbolic Address : 프로그래머들이 특정 이름을 통해 변수를 지정하고 값을 저장할 때, 변수의 이름을 통해 값에 접근하게 된다. 즉 우리가 흔히 사용하는 포인터이다. 주소 바인딩..
Dataset - Java, Scala 언어에서 지원하며 정적 데이터 타입에 맞는 코드를 지원하기 위한 Spark 의 구조적 API이다. - Dataset API는 타입 안정성을 지원하므로 초기화에 사용한 class 대신 다른 class로 접근할 수 없다. ex. Dataset[Person] 구조적 스트리밍 - 스트림 처리용 고수준 API - 구조적 스트리밍을 사용하면 구조적 API 로 개발된 배치 모드의 연산을 스트리밍 방식으로 실행할 수 있음. - 데이터를 읽을 때 read 대신 readStream method 를 사용 - maxFiledsPerTrigger 옵션을 추가로 지정 우선 staticDataFrame 을 기존의 csv 파일들을 읽어서 생성한다. 구조적 스트리밍으로 실행하는 예시는 다음과 같..
minjiwoo
MJ workspace