목록KimJinHwan (37)
ecsimsw

미리 보기 컨트롤러에 @ShutDown 어노테이션을 추가하고 임시 응답을 어떻게 전달할지를 지정해주는 것으로 ShutDown 조건에서 해당 컨트롤러 아래 모든 핸들러의 임시 응답을 자동으로 생성해 준다. 위 예시에서 DailyCountRepository 타입의 빈이 존재하지 않으면 /api/counts 를 GET 요청하는 경우 아래와 같이 응답한다. HTTP status : 503, SERVICE_UNAVAILABLEContent type : application/jsonMessage : This API is currently unavailable. 아래 사용 방법이나 버전, 기능은 현재 글을 쓰는 첫 배포 시점을 기준으로 한다.최신 변경 사항은 https://github.com/ecsimsw/api-..

퇴사DevOps로 일했던 회사에서 퇴사했다. 배울 수 있는 환경이었고, 존경할 수 있는 팀원들과 사수가 있었고, 성장할 수 있고 자부심을 느낄 수 있는 업무를 맡았었다. 회사 생활이 한없이 좋은 추억이었다고 얘기하면 얼마나 많은 사람들이 공감해 줄지 모르겠지만 나는 그랬다. 개발적인 성장도 성장인데 생활을 배웠던 게 더 큰 것 같다. 옆 팀과 대화는 어떻게 해야 하고, 팀원들과 기술을 공유할 때는 어떻게 해야 하고, 실수했을 때 어떻게 대처해야 하고, 개발자가 아닌 직장인으로써 더 좋은 팀원이 되기 위해 어떤 노력들이 필요했는지를 배웠다. 출퇴근 시간의 강남역, 역삼역 가는 전철은 다시 생각해도 끔찍하다. 새치기도, 만차에 꾸역꾸역 밀고 들어오는 사람들도 참을 수 있었지만, 그런 것들보다 다들 예민하고..

2023.04.27 / 책임의 설렘 회사 안드로이드 팀은 배포 자동화가 안되어 있었고 이번에 내 태스크로 안드로이드 팀 CI/CD 를 주셨다. 이 정도 규모의 일에, 다른 팀과 협업하고 리드해야 하는 일에 티켓 메인 assignee로 내 이름이 올라간 건 처음이었던 것 같다. 팀 리더 분들과 미팅하고 작업자로 내 이름이 불려졌을 때 너무 설렜다. 엄청 무서웠지만 또 엄청 기뻤다. 항상 레거시를 욕해왔다. 답답하고 와닿지 않고, 잘 읽히지 않는 구조나 코드가 마음에 안들었다. 아예 기반 작업이 없이 작업하면 편할 줄 알았는데 레거시가 없는 상태로 구조를 고민하고, 사용 시나리오를 고민하고. 정말 차라리 레거시의 딱 명확한 기반이나 흐름이 그리웠다. 사소한 것부터 큰 구조까지 고민을 정말 열심히 한 것 같다..

About Vault 회사에서 키 관리를 위해 HashiCorp 사의 Vault를 도입하였다. 이 글에서는 내가 키 관리를 하면서 어떤 상황들을 고려해야 했는지, Vault는 뭐고 Vault는 그 문제들을 어떻게 해결했는지를 소개하려고 한다. 혼자 공부할 때는 키 관리에 이렇게까지 신경 쓰지 못 했다. 로컬에 들고 있거나 잘해봐야 github private 저장소에 올려 관리하는 정도였다. 회사에서는 여러 사람들이 키를 사용하고, 퇴사자를 고민해야 하고, 사용자 안에서도 권한을 분리해야 하는 등의 여러 요구 사항을 만나면서 이제는 당연하지만 지금까지 고려하지 못했던 것들을 고민할 수 있게 되었다. 이렇게 키 관리에 대한 고민을 전혀 못하고 있던 나에게 팀에서 고려 해야하는 상황과 공부 방향, 정책을 함께..

JNI-JellyBean-HBE-SM5-S4210하드웨어 드라이버를 수정하고, 안드로이드 커널에 포함/빌드하여, 보드 내 임베디드 하드웨어를 제어한다. JNI를 이용하여 시스템 콜을 호출, JVM 환경 안에서 수정된 드라이버로 하드웨어를 제어한다. Concepts 1. BootLoader PC에서 전원이 켜지면 ROM의 BIOS가 로드되고, BIOS는 미리 설정된 부팅 순서대로 저장 장치의 부트로더를 로드, 실행하게 된다. 부트로더는 하드웨어를 초기화하고, 커널을 메모리에 적재하는 것으로 운영체제가 구동된다. 저장 장치가 다수인 PC와 달리, ARM 임베디드 시스템에선 단일 플래시 메모리에 BootLoader, Kernel 이미지, 사용자 파일과 App Storage가 존재한다. 이런 임베디드 시스템의 ..

Web server with socket API Socket API를 이용하여 Http 형식의 요청을 처리, 응답할 수 있는 웹 서버를 제작한다. github : https://github.com/ecsimsw/multiplexing-server Steps 1. Socket API를 구현한 간단한 Socket Server를 제작한다. - Socket server를 구현하고 client 연결, 메시지를 처리한다. - Http 요청, 응답 포맷을 확인하고 Socket Server가 이를 해석, 처리, 반환할 수 있도록 한다. - Jsoup을 이용하여 html 파일을 변환, 사용자의 접근에 따른 동적인 페이지를 반환한다. 2. Multi-Threading을 이용한 비동기 요청 처리를 구현한다. 3. Selec..

라인의 오픈소스 행사 최근에 LINE의 테크 블로그에서 `Open Source Sprint 2021: 오픈소스에 잘 기여하는 문화 만들기`라는 오픈소스 기여를 위한 행사가 주최된 후기를 읽을 수 있었다. 라인에서 공개하고 사용하고 있는 오픈소스 프로젝트에, 제1사용자인 라인 개발자들이 좀 더 편하게 기여할 수 있도록 또는 활동에 동기를 줄 수 있도록 하기 위한 행사인 것 같았다. 그리고 언제나처럼 그들에 대한 동경심과 개발 욕구?가 불타서 한 동안 내가 기여할 수 있는 오픈 소스를 알아봤었다. 솔직히 아무것도 모르고 Spring boot 저장소의 PR을 보면서 `나도 한번?`이라는 감히 큰 꿈도 가졌었는데, 너무 어려워서 점점 탐색하는 프로젝트 규모가 작아졌던 웃픈 기억이 있다. 🥲 이런 행사들과 기업이..

클릭 위치가 부채꼴 안에 포함되어 있는지 알고 싶어요! 옆 회의실에서 '프롤로그'팀이 수학 문제 푸는 거를 보고 재밌어 보여 나도 참여해보았다. 라이브러리 없이 직접 확률에 따른 사잇각을 구하고 영역 클릭시 해당 내용을 확인할 수 있는 기능을 구현 중이었고, 사용자 클릭 이벤트가 주어졌을 때 그 좌표가 해당 영역에 포함되어 있는지 확인할 수 있는 로직이 필요했다. 1. 클릭 범위 확인 우선 클릭할 수 있는 범위가 맞는지를 확인했다. 아래 그림에서 빨간색으로 표시한 부분을 말한다. 간단히 작은 원보다 밖에 있고, 큰 원 안에 있는지를 확인하면 된다. 2. 각도 확인 이번에는 좌표가 A 영역 부채꼴 안에 포함되었는지를 확인할 것이다. 영역 시작 선을 a, 영역 끝 선을 b이라고 한다. x축과 a가 이루는 각..