본문 바로가기

전체 글

(14)
동시성 이슈 현재 회사 도메인 특성으로 온프레마스로 제품이 나가고 동시에 우리 제품 api가 호출되는 일이 드물어서 동시성 이슈가 발생한 적이 없었는데 이전에 병원측 요청으로 모바일 개발이 진행 중 해당 이슈가 발생해 동시성 문제를 다뤄 보려고 한다.1. 동시성 문제란 무엇인가?모바일 개발이 진행 되면서 transfer기능이 생겼고 내가 맡은 부분이 해당 기능 개발이었다. 병원에서 뇌졸중 환자가 들어왔을 때 해당 병원에서 뇌졸중 치료 가능한 의사가 없는 경우 상급 병원으로 환자를 이송시키고 환자 정보를 전원 보내야 하는 기능이 필요했다. 하지만 처음 개발 된 로직에서는 transfer 버튼을 동시에 누르면 환자 사본이 생성중일 때는 아직 사본이 없는 것으로 조회된다. 사본이 이미 존재하는 경우에는 예외처리 해두었지만..
글또 다짐글 글쓰기에 대한 두려움어릴 때부터 글쓰기에 대한 막연한 두려움을 계속 가지고 있었다. 왜 그랬는지 정확히는 모르겠지만, 아마도 머릿속에 떠오르는 생각을 글로 제대로 표현하기가 어렵고, 들인 시간에 비해 글의 완성도가 마음에 들지 않아서였던 것 같다. 그래서 글을 쓸 때마다 자신감이 떨어졌고, 글쓰기 자체가 부담스럽게 느껴져 숙제나 과제가 아니면 스스로 글을 작성하기 위해 노력하지 않았던 것 같다.글쓰기의 중요성그런데 개발자가 되고 나서 글쓰기의 중요성을 점점 인지하기 시작했다. 단순히 코드만 잘 짜면 되는 줄 알았지만, 내가 한 작업이나 도메인 지식을 바탕으로 한 문서화 작업이 필요했고, 팀 간의 협업을 위해서는 글로 소통해야 했다. 그리고 무엇보다도 코드를 작성하는 것이 가장 중요한 글쓰기라는 것을 깨닫..
Reorder Data in Log Files https://leetcode.com/problems/reorder-data-in-log-files/description/로그를 재정렬하라. 기준은 다음과 같다.1. 로그의 가장 앞 부분은 식별자다.2. 문자로 구성된 로그가 숫자 로그보다 앞에 온다.3. 식별자는 순서에 영향을 끼치지 않지만. 문자가 동일할 경우 식별자 순으로 한다. 4. 숫자 로그는 입력 순서대로 한다.  Example 1:Input: logs = ["dig1 8 1 5 1","let1 art can","dig2 3 6","let2 own kit dig","let3 art zero"]Output: ["let1 art can","let3 art zero","let2 own kit dig","dig1 8 1 5 1","dig2 3 6"]E..
Reverse String https://leetcode.com/problems/reverse-string/description/문자열을 뒤집는 함수를 작성하라. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라. Example 1:Input: s = ["h","e","l","l","o"]Output: ["o","l","l","e","h"]Example 2:Input: s = ["H","a","n","n","a","h"]Output: ["h","a","n","n","a","H"] Constraints:1 s[i] is a printable ascii character.1. 문제 정의 given: 입력값으로 문자 배열이 주어질 때  when:  추가 메모리 공간 없이 현재 메모리 공간에서then:  배열의 순서를 바꿔..
이펙티브 디버깅 후기 회사 내에서도 업무를 하면서 디버깅에 대한 고민이 많았기에 어떤 내용일까 궁금증이 생겨 이번에 Next Step에서 진행한 이펙티브 디버깅 강의를 듣게 되었다.(디버깅을 하는데 시간을 많이 잡아먹는 것이 야근의 가장 큰 원인이기 때문에….) 이에 대한 고민으로 과거 유튜브를 찾아보기도 했었는데 유튜브에서는 디버그에 필요한 IDE기능을 좀 더 잘 다루는 영상들이 대다수였다. 때문에 이번 강의도 그렇게 생각했다. 이펙티브 디버깅 이라고 해서 디버깅에 대한 좋은 도구를 설명해 주실 줄 알았다. 하지만 이펙티브 디버깅 강의는 도구에 대한 강의가 아니었다. 마인드셋에 대한 강의다. 휘동님께서 디버깅을 잘하는 사람들을 분석하시고 그분들은 어떻게 사고 하나 정리하셔서 제공해 주셨고 그것을 이용해 나만의 디버깅 템플릿..
주니어 백엔드 개발자가 갖추어야 할 기술 면접 지식 후기 04월 20일(토)  한빛미디어 세미나 후기https://event-us.kr/FKH3nHkjmPGh/event/80465개발자 오픈 카톡방에서 해당 이벤트를 발견하고 신청했다. 이남희 님의 "개발자 기술 면접 노트" 책을 구매하면서, 주니어 백엔드 개발자가 갖추어야 할 기술 면접 지식 세미나도 함께 신청할 수 있어 자연스럽게 참여하게 되었다.세미나에서는 웹캠 커버를 제공해주었는데, 귀여워서 노트북에 바로 붙였다.  세미나 내용 중 일부는 이미 알고 있던 내용도 있었지만, 이남희 개발자님께서 면접관으로 참여하시면서 다양한 이력서를 검토하고 얻은 경험을 토대로 체계적으로 정리된 자료들이라 더욱 와닿았다. 강연을 들으면서 개발자, 아니 인생을 살아가면서 가장 중요한 것은 분석 능력이라는 생각이 들었다. 사실..