Review
-
실무로 통하는 클린 코드Review 2024. 8. 26.
어떤 기술을 학습해 가는 방법은 여러 가지가 있다. 최근 가장 관심 있는 방법 중 하나로써 기본적인 개념을 익힌 뒤 실용적인 관점에서의 예시들을 포함, 어떻게 활용하는지 익혀나가고 점진적으로 왜 이렇게 했는지 등 사고의 폭을 넓혀가는 방법이 와닿는다. 그런 관점에서 한빛미디어에 나온 "실무로 통하는..." 시리즈의 책들은 인과추론, 타입스크립트, 엑셀, 데이터 시각화등 책이 나와있는데 "실무로 통하는 클린코드" 또한 이러한 시리즈 책 중 하나이다.클린코드는 읽고, 이해하고, 유지보수하기 쉬운 코드를 의미합니다. 이를 위해 잘 구조화되고 간결하며 변수, 함수, 클래스에 의미 있는 이름을 사용합니다. 또한 모범 사례와 디자인 패턴을 따르며 성능과 구현 세부 사항보다 코드의 가독성과 동작을 우선시합니다. p3..
-
처음 시작하는 FastAPIReview 2024. 7. 28.
최근에는 프로덕션 레벨로 Java을 활용하여 작업을 이어오면서 개인프로젝트 몇몇을 제외하고는 Python 기반의 웹 서비스 개발을 거의 못하고 있었다. 종종 FastAPI에 대한 이야기를 듣곤 했었다. 작년말 해커톤에 참여할 일이 있었는데 그 때 함께 작업하시는 분이 FastAPI 이야기를 하셔서 1시간 정도 레퍼런스 문서를 보고 백엔드 API 서버를 만들기는 했었는데 이번에 이렇게 관련 서적을 읽을 기회가 있어서 한번 각을 잡고 읽어보게 되었다.Python을 개발언어의 강력함은 배우기 쉽고 이를 지탱하는 프레임워크가 굉장히 많다는 점이다. 그 중 웹 프레임워크는 과거부터 2가지 종류가 굉장히 인기가 많았다. 일종의 거대한 프레임워크라고 할 수 있는 Django와 대조적으로 경량화된 Flask이다. 어드..
-
한 권으로 끝내는 이미지 생성 AI with 미드저니Review 2024. 3. 23.
10년 전만 하더라도 AI 기술을 활용하는 사람들은 기계학습, 딥러닝을 포함하여 알고리즘과 수학적 지식을 필요로 했다. 이미지(또는 데이터)에서 사물을 식별하거나 이상패턴을 판별하는 등 특정 분야에서만 활용하고 있었고 전문적인 지식뿐 아니라 다양한 경험이 뒷받침되어야 사용할 수 있는 수준이었다. 학습 모델을 어떤 데이터로 만들것인지 그리고 최종 결과가 잘 동작하는지등 가늠하는 것도 어려운 주제이고 전문적인 최신 트렌드를 계속해서 학습해야하는 고충이 있다. 하지만 생성형 AI가 태동하기 시작하면서 분위기가 바뀌었다. 생성형 AI(generative AI)는 프롬프트에 대응하여 텍스트, 이미지, 기타 미디어를 생성할 수 있는 일종의 인공지능(AI) 시스템을 말한다. 즉, 프롬프트만 잘 만들수 있다면 전문적인..
-
You Don't Know JS Yet - 자바스크립트 개념, 스코프와 클로저Review 2024. 2. 25.
최근 함께 일하는 동료와 가볍게 JavaScript 주제로 이야기를 했었다. 기억나는 내용 중 하나는 JavaScript 개발자 면접관으로써 생각보다 숙력자를 찾기 어렵다는 것이다. JavaScript는 과거 웹 브라우저에서 동작시키기 위한 스크립트 언어였지만 이제는 서버뿐 아니라 앱 또는 GUI 개발까지 다양하게 활용되고 있다. github 플랫폼에 가장 많이 등록되어 활용되는 개발언어이기도 하고 각종 리포트의 항상 상위권 인기에 머무르는게 이 언어이다. 같이 일하던 동료가 말하는 숙련자란 Javascipt를 잘 이해하고 서버 개발에 활용할 수 있는 사람을 말한다. 그러한 관점에서 나 또한 비슷한 사람에 속한다. 오랫동안 다뤄왔지만 JavaScript 내부 동작에 대해 고민해보거나 개발 언어 특성에 맞..
-
Release의 모든 것Review 2023. 12. 25.
소프트웨어 개발을 처음 시작하는 사람들은 요구사항에 대한 정교한 설계 보다는 어떤 기술을 사용해서 어떻게 구현할 것인지에 대해 고민을 하게 되는데 운용을 포함한 입체적인 관점보다는 구현 자체에만 의미를 두는 경우가 많다. 여기서 정교한 설계는 어떤 시스템과 통합될 것인지 그리고 사용하게될 사용자수는 어떻게 되는지, 안정성을 위해 테스트 시나리오는 무엇일지 그리고 마지막으로 이 모든것을 포함하여 구현해야할 기능들에 대해 일정내 가능할지등 고민하는 것을 말한다. 문제는 실제 제품이나 서비스 운용 경험이 있어야 설계에 여러가지 고려사항들을 포함시킬 수 있다는 점이다. thread safe하지 않는 API를 사용해서 간헐적으로 프로세스가 죽는다던가 또는 책에서도 나오는 예시로 try-catch-finally에서..
-
파이썬 크래시 코스Review 2023. 8. 26.
개인적으로 Python이란 개발언어를 활용하게 된지는 꽤 오래되었다. 데이터베이스와 같은 라이브러리 종속적인 스크립트를 만들거나 CLI을 만드는 것으로 시작하여 웹 서비스 개발까지 경험하게 되었는데 현재의 Python의 위상은 그 이상으로 대단하다. Python은 윈도우, 리눅스, 맥과 같이 다양한 OS를 지원하고 쉬운 설치를 할 수 있다. 매우 쉬운 문법을 제공함으로써 아주 적은 코드로 개발을 할 수 있는데 프로그래밍을 시작하는 이들에게 공부를 시작하는 첫 관문이 되기도 하고 데이터분석을 위한 시작이 되기도 한다. 대표적인 해외 웹 서비스로써 인스타그램이 있다. 과거 인스타그램은 Python을 활용하여 전세계 서비스를 운용하였을 정도이다. 최근에도 적극 활용하고 있는지는 별도 확인해보지 않았다 데이터 ..
-
소프트웨어 아키텍처 the hard partsReview 2023. 4. 1.
소프트웨어 아키텍처 the hard parts는 2021년도에 출판된 소프트웨어 아키텍처 101 책의 후속 편이다. 저자 닐포드, 마크 리처즈의 책으로써 이번 hard parts에서는 프라모드 세달라지, 세약 데그하니가 저자로 추가되어 총 4명의 저자가 쓴 현대적인 소프트웨어 아키텍처의 advanced 기술 서적이다. 모든 문제가 하나하나 새로운 도전을 요하기에 어떻게든 문제를 해결하려는 중대한 의사 결정의 양편에 치우친 수많은 트레이드오프를 냉정하게 판단하고 평가할 때 아키텍트의 진가가 드러납니다. 소프트웨어 아키텍처에서는 최고의 설계를 고집하지 마세요. 그 대신 나쁜 것 중에서 제일 나은(least worst) 트레이드 오프 조합을 찾으세요. 26p 책 시작부에 나오는 이야기로써, 사실 시스템 또는 ..
-
마이크로서비스 아키텍처 구축 가이드Review 2023. 2. 25.
마이크로서비스란? 마이크로서비스는 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식입니다. 이러한 서비스는 독립적인 소규모 팀에서 보유합니다. 마이크로서비스 아키텍처는 애플리케이션의 확장을 용이하게 하고 개발 속도를 앞당겨 혁신을 실현하고 새로운 기능의 출시 시간을 단축할 수 있게 해 줍니다. - AWS - 마이크로서비스란 소프트웨어를 구축하기 위한 아키텍처이자 하나의 접근 방식으로, 애플리케이션을 상호 독립적인 최소 구성 요소로 분할합니다 - Redhat - 마이크로서비스란 단어가 사용되기 시작한지는 대략 10년정도 됬지만 널리 알려진지는 얼마 되지 않았다. 마이크로서비스가 없는 세상에서는 서비스/앱 개발..