2024
Storing Heterogeneous Objects in PostgreSQL
Storing different types of objects in a PostgreSQL database can be tricky. But don’t worry, it’s manageable. Let’s explore three practical ways to handle this. We will keep it simple and straightforward.
Using Interface for Controller Requests in Java Spring Framework
When building a REST API with Java Spring Framework, handling multiple types of requests efficiently can be challenging. One effective approach is to use interfaces for controller requests. In this blog post, we’ll walk through an example using a restaurant order system. We’ll handle different types of orders (like hamburger and pizza) with a single endpoint.
The Importance of Signals from Test Codes
When you write test code, it can tell you a lot about your main code. If you find it hard to write tests, it often means there are problems in your code design. Let’s explore why these signals are important and what they can teach you.
2023
Go에서 omitempty 태그 사용하기
Go로 웹 서버를 개발하다 보면 JSON 데이터를 주고 받는 경우가 많이 있습니다. struct를 JSON으로 바꿀 때 값이 Zero Value(각 type별 기본 값)이거나 nil인 경우 그 값을 보내지 않아야할 때가 있습니다. 이런 경우, omitempty
태그를 활용하면 JSON에서 쉽게 생략할 수 있습니다.
golangcli-lint로 Go 코드 규칙 적용하기
개발팀 사이즈가 커지면서 관리해야 하는 리포지토리의 개수가 늘어났고 각각의 프로젝트가 팀을 리드하는 개발자에 따라 자유분방한 모습으로 진화했습니다. 특히 Go 언어를 처음으로 사용하는 개발자들이 늘어나면서 코드 리뷰 과정에서 Idiomatic Go에 대해서 설명하고 작성하는데 시간을 꽤 소모하게 되었습니다. 그러다보니 실제로 리뷰가 되어야 하는 부분보다 더 많은 시간을 쏟게 되는 경우가 늘어났고 이를 방지하기 위해 자동화된 도구가 필요하다라는 피드백이 나오기 시작했습니다.
2022
Go에서 Enum 사용하기 그리고 주의할 점
Go 언어는 enum
타입을 제공하지 않지만 Enum
으로 사용할 데이터 타입을 따로 생성 후 iota
를 이용해서 비슷하게 사용할 수 있다. (예시 코드)
2021
Go에서 HashSet 구현하기
12월 18일 기준 가장 최근 버전인 Go 1.17에도 아직 Set
이라는 자료구조가 없다. 알고리즘 문제나 Advent of Code 문제를 풀 때 Set
을 필요로 하는 경우가 생각보다 많았어서 직접 구현해보았다.