분류 전체보기
2024년 회고 #막학기 #취준
2024년 회고 #막학기 #취준
2025.01.20두 달 넘게 이어진 채용 프로세스에서 아쉽게도 탈락하고 취준 기간은 점점 길어지고 있다.그러다 보니 조급한 마음이 들고, 해야 할 일들이 산처럼 많아 보이면서 갈피를 잡지 못한 한 해였다!작년 마지막 학교 생활과 취준 생활을 돌아보기 위한 글이다.막학기마지막 학기는 평소에 공부해보고 싶었던 것들을 가볍게 수강하자는 생각으로 뜬금 없을지 모르지만 스페인어, 멀티코어, HCI, 오픈소스SW를 수강했다.스페인어스페인어를 배우며 단어도 암기하고 문법도 익히고 작문까지 해 본 오랜만의 경험이었다. 익숙하지 않은 문법 용어와 방대한 학습량 때문에 고통스러운 순간도 있었지만 새로운 자극을 받으며 자신감을 키울 수 있었다. 처음에는 생소한 문법 때문에 크게 어려움을 겪었지만, 시간이 지나 단어를 몇 백 개 외우고 나니..
서로 닮아 보이는 Decorator, Composite Pattern - 1편
서로 닮아 보이는 Decorator, Composite Pattern - 1편
2025.01.15디자인 패턴을 처음 학습할 때 구조적으로 비슷한 다이어그램을 가진 패턴들이 서로 다른 이름과 목적을 가지고 있어 혼란스러웠던 경험이 있습니다. 이러한 혼란은 단순히 "어떻게 구현되는가?"에 초점을 맞출 때 발생하곤 했습니다.요즘 다시 이전에 디자인 패턴을 펼쳐보고 "왜 이런 패턴이 필요한가?", "이 패턴이 어떤 상황에 써라고 만든 것인가?"라는 질문을 던지며 패턴의 의미와 어떻게 문제 해결했는지 다시 한번 살펴보고 있습니다.특히, 데코레이터(Decorator)와 컴포짓(Composite) 패턴은 겉보기에는 매우 유사해 보이지만, 각각의 목적과 활용 방식에서 큰 차이가 있습니다. 이번 글에서는 두 패턴의 구현과 의도를 비교하고 다른 개발 선배들에게 얻은 해석하는 Tip 등을 공유해보고자 합니다.Decor..
[서평] 무엇이 1등 팀을 만드는가?
[서평] 무엇이 1등 팀을 만드는가?
2024.12.29한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다.엔지니어링 팀을 이끄는 여러 실용적인 팁들을 모아놓은 책책의 표지에 톱니와 시계를 보며 나는 좋은 엔지니어링 팀이 뭘까 고민해봤다."의사소통이 매끄럽게 되며 프로젝트의 마감일에 여유롭게 서로 웃으면서 사이좋게 마감하는 팀?"책을 보면 팀으로 활동한 경험이 떠오릅니다.몇 개월짜리 학교 프로젝트만 해봐도 팀원들과 웃으며 초기 목표를 성공적으로 달성하는 일이 얼마나 어려운지 알 수 있습니다. 선배, 친구들의 여러 조언과 인터넷의 글(애자일, 스프린트, 페어프로그래밍, 기획법 관련 글 등)은 처음에는 저를 혼란스럽게 만들었습니다. 몇 번 따라 해보고 단순히 방법론을 도입하는 것만으로는 큰 효과를 얻을 수 없다는 점도 깨달었습니다.그럼에도 불구하고 무엇이..
[서평] 비전공자도 배울 수 있는 타입스크립트
[서평] 비전공자도 배울 수 있는 타입스크립트
2024.11.24한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다.서평책 제목에 비전공자도 배울 수 있는 타입스크립트인만큼 정말 JS를 하나도 모르더라도 TS를 공부하고 리액트로 간단한 프로젝트를 코딩해볼 수 있게 안배가 되어 있습니다.정말 아무런 배경이 없는 초보자를 위해 작성된 책인만큼 최소한 프로그램을 실행할 수 있을만큼 "에디터 설치, 사용법"부터 "타입스크립트의 기본적인 문법"까지도 다룹니다.이런 귀여운 그림과 도표로 표현되어 있어서 직관적으로 문법을 배울 수 있을 것 같습니다.보통 이런 문법 책은 이제 뭘 할 수 있지,,라는 의문이 들 수 있는데 마지막에 날씨 API로 간단한 리액트앱을 만들어 볼 수 있는 것이 큰 장점인 것 같습니다.추천 대상프런트엔드를 위한 타입스크립트를 간단하게 접할 수 있기 때..
컨텍스트 스위치를 발생시키는 시스템 콜과 아닌 시스템콜
컨텍스트 스위치를 발생시키는 시스템 콜과 아닌 시스템콜
2024.10.28모든 시스템 콜이 컨텍스트 스위치를 발생시키는 것은 아니다.하지만 컨텍스트 스위치를 유발하지 않는 시스템 콜을 떠올리려 하니 명확한 예시가 바로 생각나지 않았다. 이를 명확히 이해하기 위해, (gpt와) 리눅스 소스 코드를 분석하며 특정 시스템 콜이 컨텍스트 스위칭을 발생시키는지 여부를 확인해보았다.컨텍스트 스위치가 일어나는 경우우선 비교를 위해, 컨텍스트 스위치를 발생시키는 시스템 콜부터 찾아보았다.컨텍스트 스위치가 발생하는 가장 명확하고 간단한 시스템 콜이 무엇일지 고민한 끝에, 일정 시간 동안 프로세스를 Blocking 상태로 만드는 sleep()을 선택했다.sleep()과 관련된 시스템 콜은 nanosleep으로 구현되어 있다.소스코드: https://elixir.bootlin.com/linux/..
IntelliJ 자주 쓰는 단축키 모음
IntelliJ 자주 쓰는 단축키 모음
2024.10.23IntelliJ IDEA요즘 인텔리제이를 자주 쓰는데 자주 쓰거나 혹은 자주 활용하면 좋아보이는 단축키를 정리해보았습니다.읽을 때기능단축어함수 시그니처 보기cmd + PQuick Docs 보기F1선언 보기 (변수, 함수, ...)cmd + B구현 보기cmd + opt + BUsage 보기opt + F7다음 Error 보기F2Symbol로 이동cmd + opt + O편집용기능단축어New Lineshift + enterJoin Linectrl + shift + JSurround Withcmd + opt + TLast Edit Locationcmd + shift + backspaceCaret to ... (커서를 움직이는 법)기능단축어일치하는 bracectrl + MBlock 시작 / 끝ctrl + opt +..
Mac Sequoia - multipass timed out waiting for response 해결법
Mac Sequoia - multipass timed out waiting for response 해결법
2024.10.14Mac Sequoia부터 오류가 나기 시작한 multipass 고치기최신 MacOS 15 Sequoia 사용자 주목!최신 Mac OS 15 Sequoia를 사용하고 있으면 현재(24년 10월 기준) 최신 릴리즈인 1.14.0 버전은 문제가 있어서 사용하지 못합니다.multipass lauch를 해도 "timed out waiting for response"라고 뜨며 실패할 것이고 예전에 실행한 인스턴스의 State도 전부 unknown으로 뜰 겁니다.원인원래는 인스턴스들의 IP를 가져오기 위해서 /var/db/dhcpd_leases 파일을 읽을 때 문제가 발생한다고 합니다. 저는 실제로 열어보니 잘 열렸는데 예전에 생성한 인스턴스 정보랑 최근에 생성되며 오류난 인스턴스 정보의 길이부터가 차이나는 것을 확..
실리콘 Mac에서 Local K8S 구축하기 #K3S #Multipass
실리콘 Mac에서 Local K8S 구축하기 #K3S #Multipass
2024.10.14실습용 K8S 환경 구축선택지1. Minikube장점명령어 한방으로 addon을 깔거나 실습 환경이 초기화되는 것은 편했다.따로 환경 구축에 관해 신경 쓰지 않고 바로 기본적인 명령어나 개념을 익힐 수 있는 것도 큰 장점이다.단점미니큐브는 싱글 노드 클러스터라 아무래도 실제 환경과는 다르다 보니 완전한 실습이 어렵다.컨테이너로 실행되어서 별도로 포트-포워딩도 한번 더해야 해서 불편했다2. 무료 쿠버네티스웹상으로 접속해서 무료로 실습할 수 있는 사이트들이 있는데 너무 느리고 시간대를 잘 공략해야 접속할 수 있어서 포기했다.오늘의 글그래서 공부용이면 차라리 가상머신 instance 3개 띄우고 K3S로 경량 쿠버네티스를 구축해서 실습하고는 한다. 오늘은 이 방법을 공유해보고자 한다.K3S로 쿠버네티스를 띄워..
[서평] 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접
[서평] 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접
2024.09.29한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다.CS 면접 전 자신이 알고 있는 것을 점검하기 좋은 책안녕하세요. 저는 9월에 면접도 잡히고 공고도 쏟아져나와서 정신이 없는 하루를 보내고 있습니다. 그러면서 면접을 대비하기 위해 학부생 때 배운 CS를 하고 공유하는 스터디를 하고 있습니다. 스터디는 무작정 전공책을 다 보기보다는 자주 출제되는 것 위주로 정리하면서 열심히 복습하고 있습니다. 그런 와중에 뭔가 딱 맞게 읽기 좋은 책을 고른 것 같습니다. ㅎㅎ.서평책을 읽으면서 느낀점을 정리해봅니다."면접에서 얘기한다면 이렇게 얘기해보자!"면접을 준비하면서 느낀점인데 면접 질문 관련 블로그 글들은 뭔가 Context가 결여되어 있거나 간단하게 개조식으로 된 경우가 많았습니다. 데이터베이스 개념 같..
HTTP 1.1 - 같은 서버(도메인)에 관한 동시 연결 제한
HTTP 1.1 - 같은 서버(도메인)에 관한 동시 연결 제한
2024.09.12HTTP 1.1의 동시성예전에 HTTP 1.1은 같은 도메인에 관해서는 만들 수 있는 연결의 제한이 있어서 Domain Sharding을 해야 한다고 들은적이 있다.연결 제한으로 인해 느려질 수 있는 경우쉽게 이해하기 위해 다음과 같은 상황을 생각해보자. 내가 웹 페이지에 접속하며 매우 큰 리소스인 이미지 파일 A, B, C를 example.com 서버로부터 불러와야 한다고 해보자. 이미지는 다음과 같은 경로에 호스팅되어 있다.A.png: example.com/img/A.pngB.png: example.com/img/B.pngC.png: example.com/img/C.png이렇게 생긴 웹사이트일 것이다. Coding Groot의 Head-of-Line Blocking 실험! example.com으로부터..
Redis 운용하기
Redis 운용하기
2024.08.19Redis 운용하기스터디에서 Redis를 영구 저장하도록 save 설정을 켜두면 사용한다면 겪게 될 문제들에 관한 얘기를 나눠보았다. 나눈 얘기에 대한 요약본이다.영구적으로 컴퓨터를 껐다 켜도 복원되도록 사용하면 주의해야 할 점이 몇 가지 있다.용어Redis간단하게 Redis는 in-memory, single thread, key-value database이다.in-memory이기에 디스크 저장하는 기능을 꺼두면 기본적으로 껐다켰을 때 올라간 메모리가 휘발되어 데이터가 비어있다.재시작해도 데이터가 유지가 됐다면 영구적으로 하드에 백업되고 있다는 말이다. (기본값)Save(snapshot을 생성)할 때 동작Redis에서 RDB(기본값), 혹은 AOF persistence를 켜두면 fork를 사용해서 백업을..
Rye로 파이썬 프로젝트 세팅해보기!
Rye로 파이썬 프로젝트 세팅해보기!
2024.07.15어떤 언어로 프로젝트를 하다보면 언어 버전부터 시작해서 Dendency와 Package 관리는 뭐로 할 것인지? 가상환경은 어떤 것으로 관리할 것인지? 나중에 어떻게 패캐지를 배포할 것인지? 등을 고민해야 합니다. 파이썬도 마찬가지로 여러 도구들이 돌아다닙니다.주로 사용한 도구주로 저는 간단하게 제일 아무런 설치가 필요없는 pip와 venv로 프로젝트를 관리를 합니다. 그런데 이번에 팀원들과 FastAPI로 프로젝트를 하면서 운영체제별로 하위 버전에 대한 이슈가 몇 번 생겨서 pip freeze를 저장한 requirements.txt에 한계를 느꼈습니다. 말고도 venv에서 환경을 불러오는 방식과 요즘 많이 채택하여 쓰는 pyproject.toml로 관리하고 싶은 마음도 들어서 다른 것을 찾아보았습니다...