티스토리에서 Github 블로그로 이전하기
2024. 7. 8. 10:52
제이로그
티스토리 블로그에 처음으로 글을 쓴 지 벌써 5년이 지났다.처음 글이 2019년 6월 30일 이다.ㅎㅎ 알고리즘 공부를 하면서 문제를 풀고 이해한 내용을 정리하자는 계기로 시작하게 되었는데 어느 덧 5년이란 시간이 흐르게 되었다.이 블로그에 취준생 시기와 여러 면접 기록들과 공부한 내용들이 기록되어있는데 이제는 티스토리를 놓아주어야할 때가 온 것 같다. 블로그 이전을 결심한 계기처음에는 네이버 블로그에서 글을 썼었는데 네이버에서 티스토리 블로그로 옮긴 이유는 다음과 같았다.구글에서 검색했을 때 노출이 잘 된다.구글 에드센스를 활용해서 작고 귀여운 수익을 얻을 수 있다. (기간이 길게 걸리지만 나름 용돈벌이가 된다.)UI 도 간단하고 여러 기능들도 많다.에디터가 깔끔하고 작성이 편하다. 이러한 이유에서 티..
페이히어 최종 면접, 컬처 핏 인터뷰 후기
2024. 4. 28. 18:43
제이로그/면접후기
지난 페이히어 데이터 엔지니어에 지원했고 직무 면접에서 합격해서 최종면접을 보게 되었다.그 당시 일주일 내에 면접 결과를 알려주신다고 하셨는데 정확히 일주일이 지난 후에야 결과를 알려주셔서 떨어졌다고 생각했었는데 다행히 합격 소식을 받게 되어 최종 면접을 보게 되었다. 그렇게 최종 면접을 준비하게 되었다. 이번 면접에서는 컬처 핏에 대한 면접이었고 회사와 맞는지에 대한 내용이라고 생각이 되어 준비를 많이 하지 않고 있는 그대로의 내 모습을 보여주자는 생각을 많이 했던 것 같다. 그렇게 예정되어있던 최종 면접일이 다가오고 면접을 보게 되었다.면접 당일이 되어 페이히어에서 최종 면접을 보게된 분들에게 한해 더치커피를 선물로 주신다고 하셔서 기분 좋게 받고 면접을 대기했다.다른 기업에서도 면접을 보았지만 페..
페이히어 직무 인터뷰 후기
2024. 4. 6. 19:34
제이로그/면접후기
지금의 내가 데이터 엔지니어로서 어떤 위치에 있고 내 실력이 어느 정도 되는지 확인하고 싶었다. 그래서 어떻게 나의 객관적인 실력을 체크할 수 있을까 하는 생각에 나는 면접을 보는 방법을 선택했다. 면접을 보게 된다면 내가 지금까지 한 일에 대해서 질문을 받고 답을 할 수 있는 자리가 생기기 때문에 더할 나위 없이 좋은 경험이 될 것이라고 생각했다. 그래서 여러 기업에 서류를 제출하고 기다리던 와중에 '페이히어' 라는 기업에 서류를 합격할 수 있었다. 그렇게 서류를 합격 소식을 듣고나서 과제 전형이 있어 과제를 진행하게 되었다. 과제 전형은 서류 합격 이후 과제 전형 내용을 전달받은 날로부터 3일 전에 제출해야했다. 과제 내용을 간단하게 설명하자면 효율적인 결과를 도출하기 위한 과제 하나와 주어진 예제에..
Postgresql Idle in transaction
2024. 3. 14. 18:10
데이터 엔지니어링/Database
다음 명령어를 통해 postgresql 의 활성화되어있는 프로스를 확인해보면 Idle in transaction 상태가 보인다. select * from pg_stat_activity; 찾아보니 이런 경우는 postgresql 에 transaction 이 잡혀있지만 아무런 동작도 하지 않으면 idle in transaction 상태가 된다고 한다. 이런 경우가 많이 발생하게 되면 connection 은 잡고있지만 아무것도 하지 않게 되어 리소스가 낭비된다. 이러한 문제를 해결하는 방법 중 하나는 다음과 같이 수동으로 해당 프로세스의 connection 을 terminate 해주어야 한다. terminate 를 할 때에는 process id 인 pid 를 가져와 terminate 를 실행하면 된다. sel..
Pyspark Window function
2024. 3. 14. 16:48
데이터 엔지니어링/Spark
Pyspark 에서 Window 함수를 사용해 rank 나 row number 등과 같은 결과를 계산할 수 있다. 직접 사용해보았지만 제대로 이해하고 사용하고 있는 것 같지 않아서 정리해보려고 한다. Window Functions Pyspark window 함수는 frame 과 partition 과 같은 행(row) 의 그룹에서 입력된 모든 row 를 하나의 값으로 반환한다. Window 함수의 핵심은 여러 개의 row 를 하나의 값으로 사용한다는 것이다. Pyspark window 함수는 3가지 종류의 함수로 구분된다고 한다. Ranking Functions Analytic Functions Aggregate Functions 아래의 테이블은 Window Functions 를 정리한 함수들이다. 참고하..
0. jekyll 초기 설정 및 준비
2024. 2. 25. 18:16
기타/Github Blog
블로그에 글을 작성하면서 뭔가.. 나만의 wiki 를 한번 만들어볼까? 하는 생각에 그럼 github 블로그에 정리해보자! 라는 생각이 들어 github 블로그를 만들어봐야겠다는 생각이 들었다. 처음에는 테마를 받아서 적용시켜보려고 하는데 원하는 기능을 추가해주어야 했고 이럴거면 내가 원하는 테마에 맞게 블로그 테마를 만들어서 적용해보자는 생각이 들었고 그렇게 jekyll 을 사용해보자는 생각이 들었다. 그래서 이렇게 블로그를 만들기 위한 준비 단계를 정리해봤다. 추가) 만만치 않은 작업이 될 것 같아서.. 중간에 포기.. ㅎㅎㅎ 글을 정리하려다가 블로그 만드는데 시간이 더 들 것 같은.. ㅎㅎㅎ 사전 준비 ruby 설치하기 brew install ruby ruby 설치 결과 확인 $ ruby -v ru..
메모리 단편화 (Memory Fragmentation)
2024. 2. 18. 18:34
컴퓨터 과학/개념정리
메모리를 공부하면서 메모리 단편화에 대해서 알게 되었다. 그래서 추가적으로 메모리 단편화가 무엇인지 정리해보려고 한다. 메모리 단편화가 무엇인가 RAM 에서 메모리의 공간이 작은 조각으로 나누어져 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태를 메모리 단편화라고 한다. 메모리 단편화는 2가지로 구분할 수 있다. 내부 단편화 (Internal Fragmentation) 외부 단편화 (External Fragmentation) 내부 단편화 (Internal Fragmentation) 내부 단편화란 메모리를 할당할 때 OS 에서 할당한 메모리 공간보다 프로세스가 더 적은 공간을 사용해서 낭비되는 상태를 말한다. 예를 들어, 10MB 의 메모리 크기가 주어졌는데 실제 프로세스는 5MB 만 사용하는 ..
메모리 구조 (Memory Structure)
2024. 2. 18. 17:27
컴퓨터 과학/개념정리
디스크에 저장되어있는 프로그램을 실행하게 되면 프로그램에 대하 정보를 읽어와 메모리에 로드하게 된다. 그럼 메모리에 어떻게 적재되고 어디에 적재되는가에 대해서 정리해보자. 먼저 메모리는 다음과 같이 4개의 영역으로 구분된다. 그럼 각 영역이 어떤 역할을 하는지 알아보자. 코드(Code) 영역 코드 영역에는 우리가 작성한 코드가 저장된다. 이때 컴파일이 완료된 상태의 코드(0과 1로 이루어진 기계어)가 할당된다. 예를 들어, 코드 내에 있는 함수나 조건문, 상수 와 같은 코드들이 컴파일되어 메모리에 할당된다. 따라서 CPU 가 작업을 수행할 때 코드 영역에 있는 명령어들을 가져가 실행하게 된다. 데이터(Data) 영역 데이터 영역에는 전역 변수(global) 와 정적 변수(static) 가 할당된다. ma..
Postgresql auto increment 적용하기
2024. 2. 16. 19:13
데이터 엔지니어링/Database
Mysql 에서는 auto_increment 라는 속성을 부여해주면 자동으로 증가하게 만들어줄 수 있다. Postgres 에서는 auto_increment 라는 속성을 부여할 수 없기 때문에 다른 방법을 통해서 증가하게 만들어주어야 한다. 그래서 postgres 의 auto increment 에는 어떤 방법들이 있는지 정리해보려고 한다. Sequence 객체를 사용해서 auto increment 하기 postgres 에는 Sequence 라고 하는 number generator 가 있다. 더 쉽게 말해서 순차적인 값을 생성해주는 객체라고 생각하면 된다. Sequence 는 다음과 같이 명령어를 통해 생성할 수 있다. CREATE SEQUENCE seq_user_id INCREMENT 1 START 1 M..
Spark explode() 함수 사용시 주의할 점
2024. 2. 11. 18:16
데이터 엔지니어링/Spark
spark explode() 함수는 리스트 타입의 컬럼에서 각각의 element 를 하나의 row 로 펼쳐주는 기능을 한다. explode() 함수의 사용 방법에 대해서는 다음과 같이 이전에 정리해두었다. https://jaynamm.tistory.com/entry/Spark-explode-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-List-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EB%A6%AC%ED%95%98%EA%B8%B0 Spark explode() 사용해서 List 로 된 컬럼을 행으로 분리하기 Spark Dataframe 에 다음과 같이 리스트 형태로 들어간 컬럼이 있을 것이다. scala> val df = Seq(("Nam", List("A"..