올해는 욕심을 현실로 만든 해였다. 크고 작은 목표를 달성하고 다음 스텝으로 달려나가는 여정의 반복이었다. 21년 회고록에서 도전을 키워드로 22년을 채우고 싶었는데 꽤나 풍족한 것 같다 :) … 그래서 올해의 나는 또 어떤일이 일어났었는지 하나씩 정리해보려 한다. 1. KOLA (THE BEST) 22년 나의 가장 큰 일탈은 팀 KOLA 다. 6명으로 이루어진 팀으로, 암호화폐 시장에서 안전한 투자를 할 수 있도록 해결책을 고민하는 집단이다. 매주 일요일과 평일 저녁시간에 활동을 했으며 필요에 따라 Private Hackerthon 도 개최하여 열정을 불태웠다. 정말 KOLA는 주로 커뮤니티, 컨설팅, 공유 투자 를 통해 암호자산 시장에서의 정보 불균형을 해소하고 잘못된 투자로 빠지지 않도록 도움을 주..
0. 사라진 20년 ? 19 개발자 회고록을 작성하고 학업에 매진하려고 했으나, 덜컥 현대자동차에 입사하게 되었다. 사내 클라우드 PM / 클라우드 인프라 자동화 개발 업무 등을 담당하게 되었고 20년은 새로운 회사생활에 적응해가느라 저ㅇ신이 없었던, 사라진 1년이었다.. 0-1. [TMI] 클라우드 PM? '클라우드'하면 AWS, GCP, Azure 등 유명 퍼블릭 클라우드 서비스가 떠오르게 된다. 이러한 퍼블릭 클라우드는 빠르고 편리하여 많이 사용하고 그만큼 서비스의 품질도 매우 높다. 하지만 마냥 퍼블릭 클라우드에 의존하게 된다면 막대한 비용을 지불해야하는 지옥을 맛보게 된다. 이러한 이유로 몇 기업체에서는 클라우드를 private하게 직접 운영하곤 한다. 그에 필요한 투자 비용은 운영 인력 + 인..
안녕하세요 국산엘런입니다. 문제 설명 요구 사항 조이스틱으로 알파벳 이름을 완성하시오. 초기 상태 주어진 글자 수 만큼 A로만 이루어져 있음. 규칙 ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 예시 첫 번째 위치에서 조이스틱을 위로 9번 조작하여 J 완성. - 조이스틱을 왼쪽으로 1번 조작하여 커서를 마지막 문자 위치로 이동. - 마지막 위치에서 조이스틱을 아래로 1번 조작하여 Z 완성. 따라서 11번 이동시켜 "JAZ"를 만들 수 있고, 이때가 최소 이동. 제한 사항 name은 알파벳 대문자로만 이루어져 있습니다. name의 길이는 1 이상 20 이하입니다..
안녕하세요 ! 국산 엘런 입니다 :) Robert C Martin(Uncle Bob) 형님이 블로그에 기재하시면서 화재가 된 것이 Clean Architecture 입니다. Clean Architecture 에 대한 소개에 앞서 알아야할 개념 두가지, Business Rule 과 System Architecture에 대해서 먼저 짚고 넘어가겠습니다. Business Rule ? Business Rule(Logic)은 컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성·표시·저장·변경하는 부분을 일컫는다. (= domain logic) Business Rule(Logic) 은 유저의 입력(UI) 과 DB 사이에서 발생한 정보 교환을 위한 특정 알고리즘이나 규칙이 정의된 tier입니다. 이는 고객의 요구..
왜 아키텍쳐를 고려해야만 할까? 아키텍쳐를 고려하지 않는 다면 매우 비대해진 클래스를 마주하게 됩니다. 그리고 이를 디버깅하는 동료 뿐만 아니라 본인 조차 이해하고 수정하는 데 너무나도 많이 시간을 허비해야만 합니다. 결국 수정을 포기하게 되죠(?) 서비스 규모가 커짐에 따라 코드 또한 빠른 속도로 방대해 집니다. 그래서 우리는 이러한 상황에 대비하기 위하여 좋은 설계가 필요합니다. 좋은 아키텍처란 ? 각 객체들이 구체적이고 명확한 역할을 가지며, 그 역할이 적절하게 분배되어 있다. 데이터의 흐름이 단순하다. Testability 하다. 코드의 위치가 명확하다. 이 기준들을 가지고 하나씩 장단점을 따져봅시당 MVC Pros 개발자에게 너무나도 익숙한 구조. Cons Controller가 View Life..
Computer Network 공부를 하다보면 용어가 참 많고, 용어들간의 연결이 복잡하게 얽혀 있어 어렵게 느껴진다. 그래서 네트워크의 레이어 별로 용어를 정리하고 조금씩 정리를 해보려 한다. 추가적인 용어나 잘못된 내용 관련해서 댓글을 달아 주시면 너무너무 감사드리겠습니다 !! :) ... 레이어 별로 정리하기 전에 몇가지만 짚고 시작하겠다. Internet '네트워크의 네트워크'를 구현하여 모든 컴퓨터를 하나의 통신망 안에 연결 (Internet Network) 하고자 하는 의도에서 Internet 탄생. '정보의 바다'라고 불리면서 컴퓨터가 서버와 클라이언트로 연결되어 TCP/IP를 이용해 정보를 주고 받게 되었음. 기본 용어들 노드(Node) : 컴퓨터 네트워크 상에 연결된 장치 호스트(Host..
1. 19년도의 시작 18년도에 휴학을 하고 시작했던 유투브, 창업 활동을 정리하고 본격적으로 개발자의 길을 걷게 되었다. 아직 대학 졸업도 안한 0년차 개발자 이지만 개발자로서 성장하고 싶어 뛰어다녔던 나의 19년이 기특하여 회고록을 적어보고자 한다. 2. IT 연합동아리 Yapp 대학생 기업형 연합 IT 동아리 YAPP 대학생 기업형 연합 IT 동아리 YAPP YAPP은 대학생들의 다양한 아이디어와 열정, 그리고 가능성을 바탕으로 조그마한 변화일지라도 의미가 있는 일을 해나가고, 기존에 없던 새로운 가치를 만들기 위해 노력하는 대학생 기업형 IT동아리입니다. yapp.co.kr 개발을 하고 싶고 협업을 하고 싶어 IT 동아리 모집에서 가장 위에 있는 곳에 지원하게 되었다. 당시 운영진이 부족한 나를 ..
iOS 환경에서 백그라운 작업의 결과, 비동기 작업의 결과 등 현재 작업의 흐름과 다른 흐름의 작업으로부터 이벤트를 받으려고 할 때 Notification을 많이 사용합니다. 예를 들면, 대용량 파일을 다운로드하는 스레드를 생성하고 다른 페이지에서 다른 작업으로 넘어가도 다운로드 완료 알림 팝업을 띄울 수 있는 것이 있습니다. 물론 다른 방법도 존재하지만... 예를 들자며는... 그렇다는 겁니당 Notification Notification Center를 통해 정보를 전달하기 위한 구조체입니다. // 알림을 식별하는 태그 var name: Notification.Name // 발송자가 옵저버에게 보내려고 하는 객체. 주로 발송자 객체를 전달하는 데 쓰임 var object: Any? // Notifica..
상당히 메모리 제약이 큰 모바일 어플리케이션 환경에서 멀티 프로세싱은 필수적입니다. 하지만 그에 대한 관리를 하는 것은 정말 어려운데요... 그래서 GCD 애플에서 개발한 멀티코어, 멀티 프로세싱 환경에 최적화된 기술입니다. 기본적으로 스레드 풀의 관리를 프로그래머가 아닌 운영체제에서 관리하기 때문에 프로그래머가 태스크(작업)을 비동기적으로 쉽게 사용할 수 있습니다. 프로그래머가 실행할 태스크(작업)을 생성하고 Dispatch Queue에 추가하면 GCD는 태스크(작업)에 맞는 스레드를 자동으로 생성해서 실행하고 작업이 종료되면 해당 스레드를 제거합니다. Dispatch Queue DispatchQueue는 작업항목의 실행을 관리하는 클래스입니다. 대기열(Queue)에 추가된 작업항목은 시스템이 관리하는..
ATS 애플리케이션과 웹 서비스 사이에 통신 시 보안 향상을 위한 기능으로 iOS 9.0, macOS 10.11부터 적용 가능합니다. 모든 인터넷 통신 시 안전한 프로토콜을 사용하도록 보장하는 것으로 사용자의 민감한 정보가 유출되는 것을 방지합니다. URLSession, CFURL 그리고 NSURLConnection API를 이용해 데이터를 주고받을 때 ATS 기능을 기본적으로 사용하게 됩니다. ATS가 활성화되어있을 때는 HTTP 통신을 할 수 없으며 애플에서 권장하는 아래 요구 사항을 충족하지 않은 네트워크는 연결에 실패할 수 있습니다. 예외사항 애플리케이션이 ATS가 요구하는 사항을 충족하기 힘든 경우, ATS 기능을 비활성화할 수 있습니다. 아래는 ATS 기능을 사용하지 않을 수 있는 예외사항입니..