카카오스타일
2020-11-06 · 5년 이상 전
GitHub Actions 활용하기
규모가 커지면 커질 수록 자동화된 워크플로우는 필수라고 생각합니다. 하지만 부끄럽게도 크로키닷컴은 잘 구축된 편은 아닙니다. 유닛 테스트는 초기부터 있었지만 그걸 PR, 머지마다 자동으로 수행하지는 못했습니다. 그러다가 2017년 중반 겨우 Jenkins를 세팅해서 자동 테스트만은 수행했습니다. 하지만 그게 워크플로우와 잘 어우러지지 못했습니다. 2019년에는 CodeBuild로 전환을 했고 비로서 PR 생성시 자동 테스트를 수행해 실패하면 머
CI/CDDevOpsTools
카카오스타일
2020-02-15 · 6년 이상 전
TypeScript에서의 환경 설정 관리
응용프로그램을 작성하다 보면 여러 가지 환경 설정(configuration)이 필요합니다. 이번 글에서는 TypeScript에서 환경 설정을 관리하는 저희의 방법을 설명합니다.
BackendToolsTypeScript
카카오스타일
2020-02-11 · 6년 이상 전
크로키의 스택 - AWS Batch
서비스를 운영하다 보면 주기적으로 실행이 필요한 작업이 생깁니다. 이런 작업을 실행하는 방법은 여러 가지가 있을 수 있습니다. 다음은 크로키에서 현재 선택해서 전환 중인 AWS Batch에 관해 설명합니다.
AWSBackendDevOps
카카오스타일
2019-09-19 · 거의 7년 전
Mobile Dev. in Croquis
9월에 컨퍼런스에서 발표한 자료입니다.
AndroidMobileiOS
카카오스타일
2019-09-19 · 거의 7년 전
GraphQL in depth (serverside)
7월에 크로키닷컴 팀원을 대상으로 발표한 자료입니다.
ArchitectureBackendGraphQL
카카오스타일
2019-05-22 · 약 7년 전
크로키의 스택 - GraphQL
현재 크로키는 API를 GraphQL로 만들고 있습니다. 아직 많은 부분에 대해서 연구 중이어서 현재 상황만 간단하게 정리해 보겠습니다.
BackendGraphQL
카카오스타일
2019-04-29 · 약 7년 전
(HTML/CSS) Vertical-Align(1) - Line Box
안녕하세요 지그재그에서 프론트엔드 개발을 하고 있는 태재영입니다. 프론트엔드 개발자에게 중앙 정렬을 어떻게 하냐고 물어보면 inline 요소는 text-align 속성을 center로 지정하고, block 요소는 margin 속성을 auto로 지정한다고 대답할 겁니다. 그런데 좌우가 아니라 위아래 수직 정렬을 어떻게 하겠냐고 물어보면 대답을 선뜻 못하거나 굉장히 다양한 답변들이 나옵니다. 그 여러 방법들 중에 개발자들이 사용하면서도 “왜 되는거
CSSFrontendUX/UI
카카오스타일
2019-04-28 · 약 7년 전
크로키의 스택 - Thrift
2016년 중반 마이크로서비스로의 전환을 결정했습니다. 마이크로서비스는 이론상 다른 서비스에 영향을 주지 않고 내부 기술을 바꿀 수 있습니다. 하지만 마이크로서비스 간의 통신 방법은 한번 결정하면 쉽게 바뀌기 어려울 것 같아서 가장 많이 고민했습니다. 그리고 Thrift를 선택했습니다. 이번 글에서는 그 이유와 이후의 상황에 관해 설명하겠습니다.
BackendInfraMSATools
카카오스타일
2019-04-27 · 약 7년 전
BotKit을 이용한 슬랙 봇 만들기
크로키닷컴을 시작하고 비교적 초기부터 ChatOps를 해보고 싶었습니다. GitHub의 글을 보고 도입하고 싶다는 생각이 들었던 거로 기억합니다. 당연하게 Hubot을 이용해 채팅봇을 설정했습니다. 초기에는 HipChat에 Hubot을 붙였고, 2014년 중반 Slack으로 전환했습니다. 봇을 활용하려는 시도는 여러 번 했지만 대부분 장난 수준을 벗어나지 못했고(예. 점심 메뉴 보여주고 임의로 고르기), 그나마 조금 복잡했던 것이 Box, Dr
DevOpsTools
카카오스타일
2018-08-23 · 거의 8년 전
분석용 이벤트 로그 점검/정리하기 2
안녕하세요! 저는 개발팀의 오형준입니다. 앞선 글에서 데이터팀의 지형님께서 ‘분석용 이벤트 로그 점검/정리하기’라는 Task가 어떤 Task이며, 왜 중요한지에 대해 다루었다면, 이번 글에서는 이번 Task의 프로세스, 앱개발팀과 데이터팀 간의 협업 방식, 각 팀의 업무 방식 등에 대해 다루어 보려합니다!
BackendData EngineeringDevOpsMobilePerformance
카카오스타일
2018-08-23 · 거의 8년 전
AWS Abuse Report
28일 오전, 한참 작업을 하다가 11시가 조금 넘은 시간에 문득 핸드폰을 들여다봤습니다. 평상시 메일은 몰아서 처리하는 편인데(시급한 일이 메일로 오는 경우는 드물어서) 이날은 왠지 메일에 눈이 갔습니다. AWS에서 보낸 메일이 보였는데, 자주 오던 광고성 메일은 아니었고 Maintenance 알림 메일인가 하고 넘어가려는 순간 불안한 단어 Abuse가 눈에 들어왔습니다.
AWSBackendSecurity
카카오스타일
2018-07-10 · 거의 8년 전
분석용 이벤트 로그 점검/정리하기 1
지그재그는 누적 다운로드 수 1,100만, MAU 200만을 넘어가고 있는 여성 쇼핑몰 모음 앱 서비스입니다. 그렇기 때문에 매일같이 지그재그에 쌓여가는 이용자들의 데이터 로그들도 어마어마하죠. 이와 같은 로그들은 이용자들이 각자 자신에게 맞는 쇼핑몰/상품을 더 쉽게, 편하게 찾을 수 있도록 도와주는 개인화 알고리즘의 핵심 자원이면서, 이용자들이 앱의 각 기능들을 잘 활용하고 있는지 파악하기 위한 사용성 분석에도 필수적입니다. 또한 서비스 운영
AI/MLBackendData EngineeringMonitoring
카카오스타일
2018-05-30 · 약 8년 전
크로키의 스택 - REST API
크로키가 클라이언트-서버 아키텍처를 가진 첫 번째 서비스 개발을 시작한 것은 2012년이었습니다. 클라이언트에서 서버와 통신할 방법이 필요했는데 당시의 대세는 REST API였습니다. 저도 거기에 공감했기 때문에 REST API를 만들어 클라이언트를 구현했습니다. 그 후로 모든 서비스는 기본적으로 REST API로 클라이언트와 서버가 통신하고 있습니다.
ArchitectureBackend
카카오스타일
2018-02-27 · 8년 이상 전
젠킨스 작업을 정의하는 방식들
오늘날의 소프트웨어 개발에 있어서 지속적 통합(continuous integration)은 필수라고 할 수 있습니다. 저도 당연히 동의하면서 오래전부터 도입하려고 했지만, 급한 일에 밀려 실제로 도입한 것은 지그재그 서비스를 오픈하고 나서도 2년이나 지난 작년 여름무렵입니다. 여러가지 고민한 끝에 CI에 젠킨스를 사용하기로 결정했습니다. 그런데 서비스에 적용하기 위해서 각종 문서를 찾아보는데 문서별로 작업을 정의하는 방식이 너무 달라서 굉장히
CI/CDDevOpsTools