본문 바로가기

전체 글

(91)
CS 기술면접 운영체제 끝내기(1) - 프로세스, 스레드와 관련된 모든 것 걱정이 많아서 CS기술 면접을 준비할 때 전공책과 관련 서적에 나오는 프로세스와 스레드에 관련된 거의 모든 내용을 다 정리해 놨었습니다. 정리하는데만 꼬박 한 달이 걸린 것 같네요,, 다들 합격하세요 ~ 프로세스란 무엇입니까? 프로세스란 컴퓨터에서 실행되고 있는 프로그램으로 운영체제로 부터 자원을 할당받는 작업의 단위입니다. 프로세스의 특징을 설명하세요. 프로세스는 각각 독립된 메모리 영역 (code, data, stack, heap구조)을 할당받습니다. 기본적으로 프로세스 당 최소 한 개의 스레드(메인 스레드)를 가지고 있습니다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 영역에 접근할 수 없습니다. PCB (프로세스 제어 블록)이란 무엇입니까? 프로그램이 프로세스가 ..
팩트(fact) 테이블 vs 디멘전(dimension) 테이블 필요한 사전 지식 데이터 마트 vs 데이터 웨어하우스 vs 데이터 레이크 빅데이터를 다를 때 데이터 마트, 데이터 웨어하우스, 데이터 레이크와 같은 용어를 많이 듣게 된다. 각각이 무엇이고 어떻게 다른지 알아보자 데이터 웨어하우스 데이터 웨어하우스(DW)는 축적 juhi.tistory.com 마스터와 트랜잭션 팩트 테이블과 디멘전 테이블을 보기 전에 관계형 모델에서 사용되는 트랜잭션과 마스터의 개념부터 살펴보자 트랜잭션 : 시간과 함께 생성되는 데이터를 기록한 것 → 한 번 기록하면 변화하지 않음 마스터 : 트랜잭션에서 참고되는 각종 정보 → 상황에 따라 다시 쓰임 이 테이블들이 데이터 웨어하우스로 넘어오면서 팩트테이블(트랜잭션)과 디멘전테이블(마스터)이 된다. 위 그림에서 판매이력만 트랜잭션에 해당하고..
데이터 마트 vs 데이터 웨어하우스 vs 데이터 레이크 빅데이터를 다를 때 데이터 마트, 데이터 웨어하우스, 데이터 레이크와 같은 용어를 많이 듣게 된다. 각각이 무엇이고 어떻게 다른지 알아보자 데이터 웨어하우스 데이터 웨어하우스(DW)는 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터 베이스 대량의 데이터를 장기 보존하는 것에 최적화 소량의 데이터를 자주 쓰고 읽는 데는 적합하지 않음 중요한 데이터 처리에 사용 대량의 데이터를 보관하기 때문에 데이터 분석과 같은 목적으로 접근하는 것은 과부화를 초래할 수 있기 때문에 부적합하다. (그래서 필요한게 데이터 마트) 데이터 마트 데이터 웨어하우스에서 분석에 필요한 데이터만 추출해서 만든 데이터 베이스 대량의 데이터가 있는 데이터 웨어하우스에서 필요한 데이터를 배치해서 가져온다. 분석 목적으로 사용된다. ..
[Kotlin] 문자열 공백 제거 방법 (trim, trimIndent, trimMargin) trimIndent 모든 입력 라인의 공통 최소 들여쓰기를 감지하고 모든 라인에서 그만큼 제거한다. 비어있는 첫번째와 마지막 라인 제거 코틀린에서 문자열 다룰 때 내가 가장 많이 사용하는 방법이다. 모든 입력 라인의 공통 최소 들여쓰기를 알아서 감지하고 제거하기 때문에, """로 감싼 문자열을 처리할 때 편하다. val str1 = """ AND os_type AND channel AND LOWER(name) AND age """.trimIndent() println(str1) 출력 내용 AND os_type AND channel AND LOWER(name) AND age trim 문자열 양 끝 공백을 제거한다 val str2 = """ AND os_type AND channel AND LOWER(nam..
커버로스(Kerberos)란? 동작 이해하기 커버로스란? - 커버로스는 티켓 기반의 컴퓨터 네트워크 인증 암호화 프로토콜이다. - 커버로스를 이용하면 티켓을 가진 유저만 서버에 접속할 수 있도록 제어할 수 있으므로 서버 접근 권한 관리가 편해진다. 티켓 기반? 커버로스에서 사용하는 티켓은 아래 정보들을 안전하게 전달하는데 사용되는 정보 패킷이다. 티켓을 발급할 때 secrey key로 정보들을 암호화한다. 유저 아이디 유저 호스트 IP주소 timestamp 티켓 수명 세션키 암호화된 위 정보들을 통해서 서버와 유저(클라이언트)는 서로 믿을 수 있는 대상인지를 몇가지 과정을 거치며 확인한다. 커버로스 동작 과정 동작 과정을 이해하기 위한 사전 지식 커버로스는 대칭키 암호화 방법으로 암호화화 복호화에 사용하는 키가 같다. 즉, 암호화할 때 쓰인 key..
ant design에서 나온 데이터 시각화 라이브러리 antv?! g6.Graph 사용기 https://antv.vision/en AntV AntV is a new generation of data visualization technique from Ant Group. We provide best practices of data visualization with simplicity, convenience, profession, reliability, and infinite possibilities. antv.vision antd design 요긴하게 잘 쓰고 있었는데, 새로 업데이트 되면서 antv라는 엄청난 라이브러리가 나왔다! 들어가서 구경해보면 세상 모든 차트들이 다있다... 웬만한 데이터 시각화는 전부 커버할 수 있을 것 같다.... antd 특성상 docs가 너무 친절해서 대부분 d..
Kotest로 깔끔하게 Kotlin 테스트 코드 작성하기 java로 구현하던 spring 프로젝트를 kotlin으로 전환하면서사용하고, 테스트 코드는 어떻게 할지 고민이었다. 1. 왜 kotest 인가? JUnit보다 간결함 Kotest에서는 **다양한 테스팅 스타일**을 지원함 BDD 테스트 코드 작성에 용이함 Kotlin을 위한 테스트 도구이므로 Kotlin 스타일로 작성 가능함 기존의 자바 테스트를 위한 라이브러리인 junit, assert, mockito 등을 이용해서도 Kotlin 테스트 코드를 작성할 수 있지만, 이들은 Kotlin 스타일로 코드를 작성할 수 없어서 코드와 테스트 코드 간의 괴리가 발생하게 됨 Mocking이나 Assertion 과정에서 코틀린 DSL 을 활용할 수 없음 비즈니스 로직을 코틀린 DSL을 이용해 작성하더라도 테스트에서 ..
[kotlin vs java ] 코틀린과 자바의 차이, 코틀린의 장점 기존에 java로 구현했던 spring 프로젝트를 kotlin으로 전환했다. 코틀린을 도입하기로 결정한 이유는 다음과 같았다. 왜 kotlin인가? 간결성, 생산성 코틀린은 자바보다 더 간결하고 직관적이라, 쓰고 읽는 데 시간이 덜 걸린다. 자바에 존재하는 여러 가지 번로운 준비 코드(생성자, 게터, 세터 등)들을 코틀린은 묵시적으로 제공하기 때문에 그런 준비코드 없이 더 깔끔하다. 기능이 다양한 표준 라이브러리를 제공하기 때문에 반복되는 코드를 줄일 수 있다. 안정성 실행 시점에 오류를 발생시키는 대신 컴파일 시점 검사를 통해 오류를 더 많이 방지해준다. 코틀린은 null이 될 수 없는 값을 추적하며, 실행 시점에 NullPointException이 발생할 수 있는 연산을 사용하는 코드를 금지한다. 자..

반응형