본문 바로가기

전체 글

(12)
클린 아키텍처: 정의와 이유, 그리고 활용 소프트웨어 개발에 있어 구조화된 아키텍처는 유지보수성과 확장성을 높이는 핵심 요소입니다.그중에서도 클린 아키텍처는 복잡한 시스템을 설계하고 관리하는 데 있어 강력한 가이드를 제공합니다.이번 글에서는 클린 아키텍처의 정의, 사용하는 이유, 그리고 다른 아키텍처들과의 비교를 통해 클린 아키텍처의 장점을 살펴보겠습니다.더불어 클린 아키텍처가 도메인 주도 설계(DDD)와 객체지향 개발(OOP)을 어떻게 지원하는지도 함께 이야기합니다.클린 아키텍처란?클린 아키텍처(Clean Architecture)는 로버트 C. 마틴(“Uncle Bob”)이 제안한 소프트웨어 설계 패턴으로, 비즈니스 로직을 외부 시스템(데이터베이스, 프레임워크 등)의 변화로부터 보호하고, 독립적이고 유연한 소프트웨어를 만드는 것을 목표로 합니다..
golang 오픈소스 컨트리뷰트 하고싶었던 이야기 오픈소스 컨트리뷰트가 하고싶다. 오픈소스 컨트리뷰트를 하게 된다면 그 분야에 대해서 어느정도 알 수준이 될거라 생각하기 때문에 오픈소스 컨트리뷰트로 나를 증명하고 싶었다. 불편한 함수의 발견 go언어를 사용하던중에 os.Getenv()를 발견했는데 python과 다르게 default값을 정할 수 없었다. 함수의 정의는 이러하다. key값을 name으로 갖고있는 환경변수를 갖고있다. name이 비어있으면 empty값을 reuturn한다. name이 비어있는지 확인하고 싶으면 LookupEnv를 사용하면 된다. python은 default값을 정할 수 있는데 go는 안되나? func Getenv(key string) string { testlog.Getenv(key) v, _ := syscall.Getenv..
[Docker] Golang으로 도커 이미지 만들기 기본적으로 golang은 컴파일 언어이기 때문에 go build 명령어를 통해서 하나의 파일을 만들어냅니다. 이 build하는 과정까지 docker image에 포함한다면 이미지의 크기가 커질 수 있기 때문에 멀티 스테이지를 이용한 빌드 방법으로 빌드 된 파일 하나만을 가지고 도커 이미지를 만드는 방법이 있습니다. 빌드 할 예시 파일 gin의 예시코드를 실행시키는 dockerfile을 예시로 build연습을 해보겠습니다! package main import ( "net/http" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H..