카카오헤어샵
2024-04-24 · 약 2년 전
오버레이 권한을 받았는데 오버레이가 안됩니다. - 제 폰에선 되는데요??
안녕하세요. 카카오헤어샵 Android 개발자 에이단(aidan)입니다. 원래 저는 두루에 이어서 Compose 관련해서 2번째 글을 작성하려고 했었습니다. 하지만 최근 작업한 오버레이 기능 관련해서 더 흥미로울만한 일을 겪게되어 이렇게 작성합니다. 카카오헤어샵에는 헤어짱이라는 CRM 솔루션 서비스가 있습니다. 해당 서비스에서는 어플리케이션도 제공하죠 이
AndroidDevOpsKotlinMobilePerformance
카카오헤어샵
2024-02-26 · 2년 이상 전
잘 먹고 잘 자면 개발 품질이 좋아질까? - feat. 연속혈당측정기
안녕하세요 개발실을 이끌고 있는 알라딘입니다. 이 줄엔 뭘 쓸까... 기술블로그 작성, 쉽지 않습니다. 우리 스스로를 업그레이드 하고자 작년말에 기술블로그 활성화를 다짐했는데, 저부터 벌써 두 달 째 이러고 있습니다. 그럼에도 함께하는 크루들 또 이 글을 보시는 어떤 개발자분의 하루하루 실제 "생활"에 플러스가 되었으면 하는 마음에 글을 시작합니다.
CareerCulture
카카오헤어샵
2024-02-08 · 2년 이상 전
카카오헤어샵에 Compose 적용하기 - xml 에서 Compose 로 가는 여정길
안녕하세요! 카카오헤어샵 Android 개발을 하고 있는 두루라고 합니다. 최근 핫한 키워드인 선언형 Ui Jetpack Compose를 헤어샵에 적용했던 내용에 대해서 소개하려고 합니다. 선언형 Ui와 Compose는 요즘 너무나도 핫한 키워드라서 여러곳에서 설명하고 있으므로 설명은 넘어가도록 하고 카카오헤어샵 Android 팀에서 적용을 하면서 있었던
AndroidFlutterMobileUX/UI
카카오헤어샵
2023-12-14 · 2년 이상 전
앱 진입로직 개선(feat. RxSwift)
안녕하세요! 카카오헤어샵 iOS 개발자 austin 입니다. 저는 이번에 앱 진입로직과 관련된 버그 해결과정을 공유하고자 합니다. 앱 진입로직이란? 저희 카카오헤어샵 앱에는 홈 화면에 진입하기 전에 체크해야 하는 항목들이 있는데요. 체크 항목을 모두 통과해야만 홈 화면에 진입이 가능하고, 하나라도 실패하면 에러 핸들링 처리하는 로직을 앱 진입로직이라고
BackendMobilePerformanceiOS
카카오헤어샵
2023-11-23 · 2년 이상 전
Form(폼) 요소에 대한 검증 및 오류 처리 개선 - 파트너스는 모든 페이지에 폼이 있고, 우린 모든 페이지를 수정해야 합니다
안녕하세요. 플랫폼 개발팀 프론트엔드 개발자 다나(dana) 입니다. 이번 달에는 저희 자사 서비스의 파트너스 사이트에서 Form(폼) 요소에 대한 검증 및 오류 처리를 어떻게 개선했는지에 대해 블로그에 작성하려고 합니다. 기존방식과 리팩토링 필요성 파트너스 사이트는 주로 폼 태그를 활용하여 서버로 데이터를 전송하는 작업이 주로 이루어집니다. 아래는
FrontendPerformanceUX/UI
카카오헤어샵
2023-11-01 · 2년 이상 전
카카오헤어샵 vanilla-extract 도입기 - 카카오헤어샵 마크업 내재화 이야기
안녕하세요, 카카오헤어샵 플랫폼 개발팀 프론트엔드 개발자 조이입니다! 오늘은 프론트엔드 파트에서 진행한 마크업 내재화에 대한 이야기를 해보려고 합니다. 외부 개발로 진행한 마크업의 문제 카카오 헤어샵, 파트너스(점주님 서비스)는 기존에 외부 마크업 개발자(퍼블리셔)분들께 html, css 작업을 요청하고 있었습니다. 내부 개발자 분들이 아니다 보니 저희
CSSFrontendReact
카카오헤어샵
2023-11-01 · 2년 이상 전
헤어샵 백엔드 개발자 코드 리뷰 - 단일책임원칙 편 - 지극히 주관적인 저스틴 코드 리뷰 방법 - 1
안녕하세요 카카오헤어샵 서비스 개발팀의 저스틴이라고 합니다 :)저는 코드 리뷰가 두 가지 타입으로 나뉘는데요첫 번째, 회사적 코드 리뷰두 번째, 교육적 코드 리뷰코드리뷰라는 것이 사실 보는 관점마다 다를 수가 있습니다그렇지만?! 개발자들은 무엇인가 배우고 반론하는 것을 좋아한다라는 것을 가정하고 두 번째인교육적 코드 리뷰를 진행한다면 어떻게 진행할 것인가에
BackendCultureJavaTestingTools
카카오헤어샵
2023-01-19 · 3년 이상 전
우리는 한다 리팩토링을 - UIKit+RxSwift 에서 SwiftUI+Combine 로의 여정
안녕하세요, 카카오헤어샵 iOS 개발을 담당하고 있는 아이작이라고 합니다. 오늘은 저희 iOS 파트에서 진행하고 있는 디자이너앱 리팩토링 작업에 대해 이야기를 해보려고 합니다. 현재 저희는 UIKit + RxSwift 기반의 디자이너앱을 SwiftUI + Combine으로 리팩토링(이라 쓰고 전면 수정이라 읽는) 작업을 진행하는 중인데요. 디자이너앱을
MobileUX/UIiOS
카카오헤어샵
2023-01-18 · 3년 이상 전
react-query로 데이터 처리하기 - 파트너스 레거시 코드 리팩토링(2) api 로직, react-query
안녕하세요, 플랫폼 개발팀 프론트엔드 개발자 제리입니다. 오늘은 지난 시간에 소개드린 파트너스 서비스의 레거시 코드들을 어떻게 개선하였는지 소개해드리겠습니다. 리덕스 스토어 안의 덕스 패턴에 얽힌 API 분리하기 기존 파트너스 프로젝트는 Redux를 활용하여 전역 상태의 값을 관리하였고 actionTypes , actions , reducer을 하나의
FrontendPerformanceReactTools
카카오헤어샵
2023-01-06 · 3년 이상 전
Version Catalog 도입을 위한 온보딩 - gradle 버전 관리를 위한 Version Catalog 도입
안녕하세요. 서비스 개발팀 Android 개발자 두루라고 합니다. 최근 프로젝트에 도입하려고 하는 gradle 버전 관리를 위한 Version Catalog 온보딩 내용에 대해서 이야기를 해보려고 합니다. Why 버전 관리? 하나의 프로젝트에서 여러 개의 모듈을 사용하는 경우, 사용해야 할 라이브러리가 추가될수록 build.gradle 관리가 점점 어려워
AndroidBackendTools
카카오헤어샵
2022-12-29 · 3년 이상 전
타입스크립트, 리액트쿼리 도입 - 파트너스 레거시 코드 리팩토링(1)
안녕하세요, 플랫폼 개발팀 프론트엔드 개발자 제리입니다. 오늘은 자사 서비스 중, 카카오헤어샵에 입점한 점주분들의 매장관리 웹사이트인 "파트너스 서비스"의 리팩토링을 진행한 이야기를 소개하려 합니다. 리팩토링의 필요성을 합의하기 레거시 코드를 꼭 리팩토링 해야하는 것은 아닙니다. 프로젝트의 규모가 커질수록, 복잡해지는 dependency 때문에 라이브러
FrontendPerformanceReactToolsTypeScript
카카오헤어샵
2022-12-28 · 3년 이상 전
안드로이드 Hilt 딥 다이브 - DI와 Dagger 그리고 Hilt 에 대해서
안녕하세요 저희는 서비스 개발팀에서 안드로이드 개발을 하고있는 두루와 스티븐입니다. 오늘은 Dagger와 Hilt에 대해 깊게 조사해본 것을 소개하겠습니다. Hilt는 프로젝트에서 의존성 주입을 실행하는 상용구를 줄이는 Android용 의존성 주입 라이브러리입니다. Hilt를 들어가기 전 의존성 주입(DI)를 사용하는 이유와 힐트의 기본형인 Dagger에
AndroidJavaKotlinTools
카카오헤어샵
2022-10-28 · 3년 이상 전
안드로이드 멀티모듈 도입기 - 온보딩 프로젝트를 통한 안드로이드 멀티모듈 도입기
안녕하세요 서비스 개발팀 Android 신입 개발자 Stephen 입니다. Intro. 저는 현재 안드로이드 개발을 할 때 멀티 모듈 방식을 사용하고 있으며이번 온보딩 프로젝트(To-do List App)에 처음으로 멀티 모듈 방식을 도입하게 되었습니다. 저는 회사에 들어오기전 제가 진행했던 안드로이드개인 프로젝트나 공부에서는 모두 하나의 앱모듈에서 코드를
AndroidArchitectureCI/CDMobileTools
카카오헤어샵
2022-10-28 · 3년 이상 전
LiveData에서 Flow로 변형해보기 - LiveData -> Flow(StateFlow & SharedFlow)
안녕하세요. 서비스 개발팀에서 Android 개발을 하고 있는 신입 두루라고 합니다. 최근 프로젝트를 진행하면서 기존 LiveData를 Flow로 적용했던 내용에 대해서 소개하려고 합니다. StateFlow & SharedFlow에 대해서 이야기를 하기 전에 기존에 LiveData는 어떤 것인지에 대해서 이야기를 해보려고 합니다. LiveData Live
AndroidArchitectureKotlinMobile
카카오헤어샵
2022-10-27 · 3년 이상 전
유연하게 프로젝트별 개발환경 자동 설정하기(nvm) - nvm deeper shell integration 활용
안녕하세요. 플랫폼 개발팀에서 프론트 개발을 하고 있는 마누입니다. 카카오헤어샵에서는 node.js환경에서 개발하고 있는 프론트엔드 프로젝트가 3개가 있습니다. 동료 개발자들은 이 3개의 프로젝트를 구분 없이 코드 작성해야 합니다. 그런데 이 프로젝트들은 배포환경에서 각각 다른 node.js 버전을 활용했습니다. 프로젝트를 옮겨다니면서 작업해야 할 텐데
DevOpsFrontendNode.js
카카오헤어샵
2021-08-17 · 거의 5년 전
프로젝트에 테스팅 도입하기 - 삽질의 기억
안녕하세요. 플랫폼 개발팀에서 프론트 개발을 하고 있는 엘리엇입니다. 최근에 파트너스 프로젝트에 react-testing-libarary를 활용하여 테스트를 도입하여 소개하고자 합니다. 테스트를 도입하게 된 이유 Side Effect 관리의 어려움 파트너스 프로젝트는 user가 입력해야 하는 Form들이 매우 많습니다. 그리고 user들이 어떤 것을 입
FrontendReactTesting
카카오헤어샵
2021-05-14 · 약 5년 전
언제까지 자동으로 잡아 주길 원해. - LocalContainerEntityManagerFactoryBean
안녕하세요. 카카오헤어샵 백엔드 개발팀 카이입니다. 이번 포스팅에서는 빈으로 등록된 값 사용한 AttributeConverter를 개발하면서 겪은 문제를 공유하고 어떻게 풀어 갔는지 소개해보려고 합니다. 저의 첫 포스팅 끝까지 읽어주실 거조. :) (문제 해결이 궁금하시다면 아래 요약으로 SKIP) 문제의 서막 엔티티의 속성 값 중 디비에 저장 및
BackendDatabaseDevOpsJavaSpring
카카오헤어샵
2021-04-16 · 약 5년 전
boot 1.3을 2.3으로 버전업
안녕하세요. Calvin입니다. 카카오헤어샵 어드민을 spring-boot 1.3에서 2.3으로 버전 업하면서 겪은 시행착오를 공유할까 합니다. 왜 버전업을 하나요? 스프링의 새로운 모듈을 써야 하는데 1.3은 버전이 너무 낮아서 지원이 안되었어요. 5년 동안 방치하다가 이제야 올리게 되었습니다. 그리고 새로 합류한 개발자들이 모두 boot 2.x 에
ArchitectureBackendSpring