![Docusaurus Sidebar 제목에 prefix Icon 추가하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI4Rgo%2FbtsJDgLXLVD%2FB932QZZ9nY9RsElRSZ7EOK%2Fimg.jpg)
Docusaurus 문서화를 하던 와중에 페이지의 직관성 및 가독성이 더 필요하다고 느끼게 되었습니다.그런 이유로 일부 기능을 더 보강하려고 합니다.그래서 가장 처음에 생각난 기능이 바로 Sidebar의 prefix에 icon을 추가해서 직관적으로 문서와 카테고리를 분류 하는 것입니다. 1. Custom CSS 추가 및 반영우선은 custom.css 파일을 적용하기 위해서아래와 같이 docusaurus.config.ts (혹은 js)에 custom.css 파일을 등록해 두어야합니다.presets: [ [ 'classic', { docs: { 중략... }, blog: { 중략... }, t..
![Golang 에러 처리 - (2) 에러 처리 시 결정해야 할 항목들](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYkaW8%2FbtsJuE0e6qA%2FTw5aDEqDlixfzNOf69kKc1%2Fimg.jpg)
Golang Error 처리를 위한 결정1. Error Wrapping으로 추가 정보를 포함한다.Wrapping 방법은 fmt.Errorf(”%w”, err)를 사용하여 에러를 추가하는 방식입니다.Go 1.13 이상 버전에서는 표준 라이브러리에 error 래핑 기능이 추가되어, 호출 스택이 필요 없는 경우에는 다음과 같이 간편하게 사용할 수 있습니다.func foo() error { return errors.New("foo error!!") } func bar() error { return fmt.Errorf("%s, %w", "bar", foo()) } func main() { err := fmt.Errorf("%s, %w", "main!!", bar()) fmt.Printf("%+v", err) } ..
![Golang 에러 처리 - (1) Google Guide/Best Practice 찾아보기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIxXFM%2FbtsJvQyBYyJ%2FUghfQWo9jIoYTncCksYgD1%2Fimg.jpg)
배경현재 프로젝트에서 Error 처리를 일관적이지 못한 방법으로 하고 있다는 생각이 들어서 글을 쓰게 되었습니다.작년의 Golang 초기 사용 시점에는 모두 언어에 대한 이해도가 낮고 MVP 완성을 위해 빠르게 코드를 짰어야 해서 전체적으로 코드를 짠 사람의 코딩 Convention을 따라가게 되었습니다.그때의 Error handling 사용의 형태를 유사하게 활용해 오다 보니 현재까지 같은 문제를 가지고 있는 Error handling을 가져오게 된 것이죠. 그래서 우리의 Error handling은 같은 문제들을 가지고 있습니다. 현재 프로젝트의 에러 처리 방식의 문제점1. 에러 로그의 일관성이 부족합니다.어떤 에러 로그는 최상위 API 실행시에만 몰아서 출력되고,어떤 에러 로그는 최상위 API 실행..
![[번역] 대부분 golang과 sqlite로 충분하다](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJRCJE%2FbtsJmLkO7jv%2F4vfIGZbzD67sy3vqvAlIwk%2Fimg.png)
https://crawshaw.io/blog/one-process-programming-notes crawshaw - 2018-07-30One process programming notes (with Go and SQLite) 2018 July 30 Blog-ified version of a talk I gave at Go Northwest. This content covers my recent exploration of writing internet services, iOS apps, and macOS programs as an indie developer. There are severcrawshaw.io위의 글을 번역해서 가져왔습니다. ----구글에서 일을 하던 시점에서 Small 비지니스를 만들기 ..
![우분투 데스크탑 별의 별 이슈 해결 - 터미널 안켜짐 이슈, NVIDIA 그래픽 driver 설치 후 네트워크 안잡힘 이슈](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdEy55M%2FbtsI9ez8nRg%2Fo4NoLplkBssQlBunRBEwN1%2Fimg.png)
최근에 아래와 같은 작업을 하다가 데스크탑에 설치한 우분투가 이상해지는 경험을 두번이나 했습니다. 특정 목적이 있어서 변경한 게 Side effect를 발생 시켜서 문제를 일으킨 것인데요. 두 가지 이슈에 대해서 공유드리려고 합니다. 이슈 1. Ubuntu의 터미널이 켜지지 않는 이슈가 있었습니다.변경 배경 및 현상최근 로컬 LLM을 데스크탑에서 구동하고 싶어서 관련 오픈소스를 찾았습니다. 해당 오픈소스의 Python3의 버전이 3.11버전 부터 지원하여 파이썬 버전을 바꾸었습니다. 그런 이후 우분투 reboot을 했더니 기본 터미널을 실행해도 켜지지 않았습니다. 원인기존에 OS 설치시에 깔린 python3 버전이 아닌 상위 버전을 설치하여 default로 설정해버리면 terminal이 켜지지 않는 문제..
![오픈소스 라이센스 한눈에 보기: GPL, MIT, Apache 등 주요 라이스 비교](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeN2V00%2FbtsI5NK374A%2FfFVyNKhgX9JfWY0IVTPsB0%2Fimg.jpg)
주요 오픈 소스 라이센스 정리라이선스Copyleft소스코드 공개 의무상업적 사용 가능주요 특징GPL v2/v3Strong Copyleft예제한적으로 가능수정 및 배포 시 반드시 동일 라이선스로 배포해야 함. 상용 제품에서는 사용 제약이 있을 수 있음.LGPLWeak Copyleft수정된 라이브러리만 공개예라이브러리를 동적 링크로 사용 시, 상용 제품에서도 소스 공개 의무 없음.MIT없음아니오예매우 자유롭고 간단한 라이선스. 소스 코드 사용에 제한이 거의 없음.Apache 2.0없음아니오예특허권 보호 조항 포함. 수정 및 배포 시 라이선스와 특허 조항 유지 필요.BSD 2-Clause/3-Clause없음아니오예MIT와 유사하며, 3-Clause는 개발자 이름으로 제품 홍보 금지 조항 포함.MPL (Mozi..
![다시 한번 인프콘 2024 - 세션 후기 3. 여러 세션 들 종합 (디자인, PM 등)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1ZMuz%2FbtsI5MyAgrd%2F3K9MdZE7wptAvvMjkNZeVk%2Fimg.png)
다시 한번 인프콘 2024 - 세션 후기 1 : 지속 성장 가능한 설계를 만들어 가는 법작년에는 인프콘을 듣고나서 꽤 나중에 블로그 글을 작성했지만 이번에는 잊기 전에 올해 인프콘 후기 글을 작성해보려고 합니다.올해 들은 첫번째 세션이자 가장 좋았던 세션인 지속 성장 가ray5273.tistory.com 다시 한번 인프콘 2024 - 세션 후기 2 : 실리콘 밸리 개발 문화 및 서바이벌 전략실리콘 밸리 소프트웨어 개발 문화스타트업은 2주에 한번 MVP를 만들고 피드백 받는 과정을 많이한다고 합니다.특정 부서는 오픈소스 기여만 하도록 하게도 한다고합니다. (우리나라에서는 잘ray5273.tistory.com위의 두 세션의 후기에 이어서 마지막 후기입니다.이번엔 개발 뿐 만 아니라 다른 세션들도 들었는데요...
![[번역] 노션이 데이터 레이크를 구축하고 확장한 방법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp35nH%2FbtsI06PUJ9z%2Fvam9UKAfpJRVJXKgbeQ6xK%2Fimg.png)
How Notion build and grew our data lake to keep up with rapid growthHow Notion build and grew our data lake to keep up with rapid growthwww.notion.so위의 포스트를 번역하고 정리했습니다. 노션의 데이터 모델과 성장노션에서 볼 수 있는 모든 텍스트, 이미지, Headings, 리스트, 데이터베이스 , 페이지 등등 프론트엔드에서의 표현과 작동 방식은 다를지라도 모두 "block" entity 로써 백엔드에서 모델되었습니다.그리고 이 데이터들은 Postgres 데이터베이스에 저장되어있죠.(참고, 노션의 데이터 모델 : The data model behind Notion's flexibility)..
![다시 한번 인프콘 2024 - 세션 후기 2 : 실리콘 밸리 개발 문화 및 서바이벌 전략](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp75DD%2FbtsISNj4Djr%2Flo3KB6WaSmOkkO13QsuF90%2Fimg.png)
실리콘 밸리 소프트웨어 개발 문화스타트업은 2주에 한번 MVP를 만들고 피드백 받는 과정을 많이한다고 합니다.특정 부서는 오픈소스 기여만 하도록 하게도 한다고합니다. (우리나라에서는 잘 없는 일인것 같습니다.)스타트업은 Accelerator이나 angel 투자자가 2주마다 방문해서 여러 투자들을 엮어주려고도 한다고합니다.거의 매일 공부한다고합니다.또한, (나이가 지긋한) 경험이 많은 개발자들이 많다고 하네요. 실리콘 밸리 서바이벌 전략자기 PR링크드인 기술스택블로그도 미디엄 많이봄컨퍼런스 발표네트워킹협업 능력창의성/문제해결능력기술 트렌드 습득테크 블로그와 뉴스 구독 (TechCrunch, Wired, Bytebytego, Hacker News) 에 대해서도 강조했습니다. 매년 리뷰를 팀에 대한 리뷰를 회..
![다시 한번 인프콘 2024 - 세션 후기 1 : 지속 성장 가능한 설계를 만들어 가는 법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsB5Ya%2FbtsIVc963RU%2F1gdwdGng3gcyWZY2KuX0yK%2Fimg.png)
작년에는 인프콘을 듣고나서 꽤 나중에 블로그 글을 작성했지만 이번에는 잊기 전에 올해 인프콘 후기 글을 작성해보려고 합니다.올해 들은 첫번째 세션이자 가장 좋았던 세션인 지속 성장 가능한 설계를 만들어 가는 법 세션을 정리해보려고 합니다.발표는 15년차 개발자이신 토스 페이먼츠 김재민님께서 해주셨습니다.(사실 연차를 듣고 나서 부터 기대가 됐습니다.)설계를 잘 하는법설계를 잘하는 방법을 가장 먼저 요약을 해주셨는데바로 설계를 하지 않는 것 이라고합니다. 그래서 세션에서는 설계에 대한 얘기보다는 구현을 강조하셨습니다.그리고 구현을 잘 하기 위해서 개념과 격벽이라는 메인 키워드를 이해할 필요가 있습니다. 개념과 격벽개념이란 특정 시스템이나 소프트웨어의 기능, 역할 또는 객체를 이해하기 위한 기본적인 아이디어..