Spock in Maven
안녕하세요. 저는 지마켓에서 백엔드 시스템을 개발하고 있는 양승권이라고 합니다. 이번에 저희 시스템 중 Maven으로 개발되어있는 시스템들에 Spock framework를 적용한 경험을 공유하고자 합니다. 하고 싶었던 것 신규 프로젝트를 진행하게 되면서 새로운 기능을 개발할 일이 생겼는데, Maven 프로젝트 라서 그런지 Test 쪽이 좀 부족한 상황이었습니다. 그래서 이 참에 한번 이 프로젝트에 적용해보고 다른 Maven 프로젝트에도 적용해보자고 생각했습니다. 아래와 같은 내용을 해보고 싶은 내용들을 도출하였습니다. Spock library를 활용하여 좀 더 직관적인 테스트를 해보자. Spock의 Groovy로 Test code를 작성해보자. 프로필 별로 구분하여 단위/통합 테스트를 구분하여 수행해보자..
BackendTestingTools
전체 읽기 →컬리 검색이 카프카를 들여다본 이야기 2
카프카 스트림즈를 추가하다
BackendTools
전체 읽기 →카카오페이
2022-08-22 · 거의 4년 전
OpenAPI Specification을 이용한 더욱 효과적인 API 문서화
사실상의 표준으로 발돋움 중인 OpenAPI Specification을 이용한 API 문서화 방법(Swagger와 Spring REST Docs의 장점을 합치는 방법)을 공유드립니다.
BackendTools
전체 읽기 →뱅크샐러드
2022-08-22 · 거의 4년 전
제1회 뱅크샐러드 디자인 드레싱을 소개합니다
2022년도 이제 반을 훌쩍 지나고 있습니다. 여러분의 상반기는 어떠셨나요? 뱅크샐러드의 디자인 챕터는 지난…
CultureToolsUX/UI
전체 읽기 →기술 글쓰기를 통해 개인 브랜딩을 구축하는 나만의 방법
기술 포스트 발행을 개인 브랜딩으로 연결시키는 방법에 대한 전반적인 노하우를 소개합니다.
CareerCultureTools
전체 읽기 →주니어 개발자의 QueryDSL 찔러보기
안녕하세요. Fulfillment Engineering 팀의 입사한 지 1년이 얼마 지나지 않은 싱싱한(?) 주니어 개발자 백정현입니다. 최근 들어 JAVA를 기반으로 한 Spring boot + JPA 또는 Spring Data JPA를 이용한 프로젝트가 많이 보입니다. JPA는 쿼리를 지원하는 다양한 방법들이 있는데, 그중 QueryDSL에 대해서 살포시 찔러보도록 하겠습니다. QueryDSL은 무엇인가요? QueryDSL은 정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해 주는 오픈소스 프레임워크입니다. 쿼리를 문자열로 작성하거나 작성하는 것이 아닌, QueryDSL이 제공하는 Fluent API를 이용해 코드 작성의 형식으로 쿼리를 생성할 수 있게 도와줍니다. Gradle 설정 Qu..
BackendDatabaseTools
전체 읽기 →객체는 어떻게 식별하고 구현해야 할까?
안녕하세요 Post-tx & Accounting 팀 권우석입니다. 회사에 처음 입사했을 때 저에게 '객체 지향 프로그래밍'은 인터넷에 검색하면 나오는 몇 가지 특성과 설계 원칙으로 대변되는 단어였습니다. 하지만 당장에 프로젝트를 진행한다고 상상했을 때 "어떤 객체가 필요하지?", "객체는 어떻게 구현해야 하지?"와 같은 질문을 마주할 것 같았고, 질문에 대한 답을 명확히 할 수 없는 느낌에 공부를 했었는데요. 이때 공부했던 내용을 아래의 순서로 간단히 정리해보려 합니다. (1) 객체를 식별하는 방법 (2) 객체를 구현하는 방법 (3) 객체들이 협력할 수 있는 구조 객체 지향은 현실의 모방이다? 위 사진을 보면 "배달원이 고객에게 택배를 전달하는 상황"이라는 사실을 어렵지 않게 파악할 수 있습니다. 아마 ..
ArchitectureBackendTools
전체 읽기 →Java Generic 을 파헤쳐보자 - 심화편
오랜만에 Java Generic 포스팅으로 돌아왔습니다.이번에는 Java Generic에서 주의해야 하는 심화 개념들을 몇 가지 다뤄보겠습니다.1. Type ErasureJava Generic 을 관통하는 주요 개념 중에 Type Erasure라는 개념이 있습니다.이론적으로는 Generic 을 운영하기 위해 부가적으로 들어간 소스코드들이 바이트코드 레벨에서는 모두 제거되는 것을 의미하는데요.개념편에서 다루었던 예제를 기반으로 좀 더 상세히 알아보겠습니다.public class Tv { private String title; public Tv(String title) { this.title = title; } public String getTitle() { r..
BackendTools
전체 읽기 →데브시스터즈
2022-08-09 · 거의 4년 전
9가지 프로그래밍 언어로 배우는 개념: 2편 - 다형성
프로그래밍 언어들을 비교해가며 다형성을 알아보고 더 나은 코드를 작성하는 방법을 고민해봅니다.
AI/MLBackendTools
전체 읽기 →44BITS
2022-08-08 · 거의 4년 전
Django 4.1 릴리스와 주요 변경 사항
2022년 8월 3일에 Django 4.1이 출시되었습니다. 이 글에서는 Django 4.1에 추가된 기능과 바뀐 점을 알아보려 합니다. 릴리스 노트만으로 이해하기가 어려운 기능엔 설명을 조금 보태었습니다.
BackendTools
전체 읽기 →컬리 검색이 카프카를 들여다본 이야기 1
카프카 설정 튜닝만으로 색인 속도를 개선하다
BackendInfraTools
전체 읽기 →44BITS
2022-08-07 · 거의 4년 전
Django 4.1 릴리스와 주요 변경 사항
2022년 8월 3일에 Django 4.1이 출시되었습니다. 이 글에서는 Django 4.1에 추가된 기능과 바뀐 점을 알아보려 합니다. 릴리스 노트만으로 이해하기가 어려운 기능엔 설명을 조금 보태었습니다.
BackendTools
전체 읽기 →개발자의 글쓰기는 다르다.
안녕하세요. Seller & SD Engineering 팀 박명훈입니다. 기존에는 프로젝트나 기술적인 내용에 중점을 주어 글을 작성했는데 오늘은 내용을 좀 환기하여 개발자의 글쓰기에 대해 이야기합니다. 회사에 와서 2년 동안 개인 위키 페이지 500개 이상을 썼으며, 팀 위키나 개발 문서, 개발 블로그를 운영하며 여러 글을 쓰고 있습니다. 글이나 문서를 쓰며, 신경 썼던 부분 그리고 어떻게 하면 더 글을 잘 쓸 수 있을까에 대해 공부한 내용에 대해 공유합니다. 너무 자세하게 설명하면 내용이 길어질 것 같아 핵심만 작성합니다. 글쓰기는 중요하다. 신입 입사자 혹은 다른 팀에서 어떤 정보를 확인할 때는 문서를 확인합니다. 팀이나 비즈니스를 파악할 때 가장 중요한 요소 중 하나가 문서이고, 문서가 없다면 하나..
CareerCultureTools
전체 읽기 →데브시스터즈
2022-08-02 · 거의 4년 전
Unity 프로젝트를 위한 Git Hooks 활용
Git으로 관리하는 Unity 게임 클라이언트 프로젝트에서의 Git Hooks 활용 방안에 관한 제안
BackendDevOpsTools
전체 읽기 →44BITS
2022-08-01 · 거의 4년 전
도커 컨테이너 5분 만에 무료로 배포하기(feat. fly.io)
fly.io가 제공하는 환경에 도커 컨테이너를 배포해봅니다. 첫 배포까지 5분 정도면 충분하고, 이후 업데이트에는 10초가 채 걸리지 않을 거예요. 게다가 무료 티어 성능도 꽤 좋아요!
DevOpsInfraTools
전체 읽기 →44BITS
2022-07-31 · 거의 4년 전
도커 컨테이너 5분 만에 무료로 배포하기(feat. fly.io)
fly.io가 제공하는 환경에 도커 컨테이너를 배포해봅니다. 첫 배포까지 5분 정도면 충분하고, 이후 업데이트에는 10초가 채 걸리지 않을 거예요. 게다가 무료 티어 성능도 꽤 좋아요!
DevOpsInfraTools
전체 읽기 →확장성 높은 카프카 구성을 위한 서비스 설계
카프카와 확장성 카프카를 사용하여 환경을 구성하는 과정에서 확장성이 필요한 서비스를 운영하기 위한 고민이 있었습니다. 일면의 가용성이나 확장성에 대해서는 카프카는 아주 훌륭한 도구였으나 또 다른 측면에서 딱딱하게 구는 부분도 있었습니다. 리파티셔닝과 리밸런싱 카프카가 제공하는 기능의 몇 가지는 파티션이라는 구조를 기반하고 있습니다. 일단 카프카는 기본적으로는 메시지의 순서를 보장하지 않지만 메시지의 순서를 일부 보장하며 해당 순서를 기반으로 commit과 offset을 제공하는 기반은 파티션입니다. 따라서, 파티션에 의해 좌우되는 요소들이 많습니다. 예를 들면 파티션은 메시지의 동시처리의 상한을 만듭니다. 파티션 수 보다 많은 컨슈머의 수는 메시지 처리 속도 측면에서 의미가 없습니다. 더 많은 컨슈머를 ..
BackendInfraTools
전체 읽기 →데브시스터즈
2022-07-26 · 거의 4년 전
폼 데이터를 우아하게 관리하는 방법
React에 함수형 프로그래밍을 적용하여 여러 개의 데이터 상태들을 효율적으로 관리한 경험을 소개합니다.
FrontendTools
전체 읽기 →데브시스터즈
2022-07-12 · 거의 4년 전
9가지 프로그래밍 언어로 배우는 개념: 1편 - 타입 이론
프로그래밍 언어들을 비교해가며 타입 이론을 알아보고 더 나은 코드를 작성하는 방법을 고민해봅니다.
AI/MLBackendTools
전체 읽기 →카카오페이
2022-07-11 · 거의 4년 전
React Query와 함께 Concurrent UI Pattern을 도입하는 방법
카카오페이에서 React Query를 활용하여 Concurrent UI Pattern을 도입한 사례에 대해 소개합니다. 이 글은 연작 중 2편에 해당합니다. 1편: 카카오페이 프론트엔드 개발자들이 React Query를 선택한 이유, 2편: React Query와 함께 Concurrent UI Pattern을 도입하는 방법
FrontendTools
전체 읽기 →