본문 바로가기

분류 전체보기338

HeroTransitions/Hero GitHub - HeroTransitions/Hero: Elegant transition library for iOS & tvOSElegant transition library for iOS & tvOS. Contribute to HeroTransitions/Hero development by creating an account on GitHub.github.comiOS에서 사용되는 animation 중 가장 중요한 부분은 ViewController 간의 전환에 사용되는 animation이 아닐까 싶다. Hero는 iOS 애플리케이션에서 맞춤 전환을 쉽게 구현할 수 있도록 돕는 라이브러리다.Hero는 Keynote의 Magic Move와 비슷하게 작동합니다. 모든 출발지와 도착지 .. 2024. 4. 20.
2023 계획 보호되어 있는 글 입니다. 2023. 1. 1.
2022년 회고 2020 리뷰 2021 계획 2021 리뷰 2022 계획 2022년 쉬어가는 1년이었던 것 같다. 그저 그런 주말이었는데 오늘이 올해의 마지막 날이었고 속절없이 12시가 지나고 2023년 새해가 시작되었다. 2022년 기억나는 이벤트를 생각해보면.. 일반적인 iOS 업무 진행 서울 자취방 구하기 오브젝트 책 스터디 클린 아키텍쳐 스터디 다른 회사 개발자 분들과 커피챗 이직을 할뻔 했지만 스테이.. 사이드 프로젝트 (Flutter) 화상 영어 Accessibility 공부 및 적용 Carplay framework 공부 부스트 캠프 코드 리뷰어 활동 올해 잘 보냈네..! 라고 생각하긴 부족한것 같다. 기록도 많이 남기지 않았고 중간중간 돌아볼 수 있는 회고도 부족했고.. 제일 중요한 거창하게 짰던 2022 .. 2023. 1. 1.
당근영어(aka 화상영어) 후기 2022년 새해를 맞아 화상영어를 시작했다. 링글이나 다른 플랫폼을 찾아 볼까 싶었는데 회사 지원 결제를 받는 방식이 복잡해서 회사와 연계되어 결제가 편한 "당근영어" 를 시작했다. 처음엔 주 3회 15분 (월, 수, 금) 첫 수업 전까지 15분의 시간동안 영어로 솰라솰라 어떻게 하지 싶었는데 막상 수업을 시작하니 조금 이제 말하기 시작하면 15분 칼같이 수고했다고 끝나서 짧다고 느껴졌다. (물론 수업 시간은 칼같이 지키는거 킹정하는 부분) 교재가 있기 때문에 무슨말을 해야할지 어색한 침묵은 없었고 다만 첫번째 슨생님은 바로바로 그래머를 교정해줘서 말을 하다 툭툭 끊기는 느낌이 강했고 또한 어떤 주제에 대해서 슨생님은 질문만 하고 내가 답을 하는 좀 형식적인 포멧이 싫었다. 당근영어는 수업스타일을 설정.. 2022. 7. 1.
WWDC 2022 카테고리별 세션 분류 메인 세션 keynote Platforms State of the Union Media Explore media metadata publishing and playback interactions Swift language & Protocol What's new in Swift Writing for interfaces Design protocol interfaces in Swift Embrace Swift generics Meet Swift Regex Swift Regex: Beyond the basics Meet Swift Async Algorithms Server side Use Xcode for server-side development Xcode What's new in Xcode SwiftUI &.. 2022. 6. 10.
클린아키텍쳐 5부 정리 (22장~28장) 22장 클린 아키텍처 수십년간 아키텍처에 관한 다양한 아이디어가 있었음 육각형 아키텍처(포트와 어댑터) DCI (Data Context and Interaction) BCE (Boundary Control Entitiy) 이들의 공통점은 "관심사의 분리" 소프트웨어를 계층으로 분리하면서 관심사의 목표 달성 프레임워크 독립성: 프레임워크의 제약사항을 시스템이 강제하도록 하지 않는다. 테스트 용이성: 업무 규칙은 UI, 디비, 웹 서버 또는 다른 요소 없이도 테스트 할 수 있다. UI 독립성: 시스템의 나머지 부분을 변경하지 않더라도 UI를 쉽게 변경할 수 있어야 한다. 데이터베이스 독립성 모든 외부 에이전시에 대한 독립성 DI 프레임워크 SwiInject, Needle도 프레임워크인데 그럼 직접 DI wr.. 2022. 4. 28.
클린아키텍쳐 5부 정리 (15장~21장) 15장 아키텍처란 소프트웨어 아키텍트도 프로그래머이다. 아키텍트도 실제 프로그래밍 작업에 지속적으로 참여해야한다. 소프트웨어 아키텍처: 시스템을 구축했던 사람들이 만들어낸 시스템의 형태 시스템이 쉽게 개발, 배포, 운영 유지보수 되도록 하기위해서는 가능한 한 많은 선택지를, 가능한 한 오래 남겨두는 전략을 따라야 한다.좋은 아키텍처의 조건과 저자의 경험들 개발 팀 구조가 다르면 아키텍처 관련 결정에도 차이가 난다. 저자의 경험 썰 배포 운영 유지보수 선택사항 열어두기 장치 독립성 광고 우편 물리적 주소 할당 결론 세부사항에 대한 결정은 가능한 한 오랫동안 미룰 수 있는 방향으로 설계해야 한다. 16장 독립성 좋은 아키텍처는 다음을 지원한다. 시스템의 유즈케이스 시스템의 운영 시스템의 개발 시스템의 배포 .. 2022. 4. 24.
클린 아키텍쳐 4부 정리 (12장~14장) 12장 컴포넌트 SOLID = 벽돌을 벽과 방에 배치하는 방법 컴포넌트 = 빌딩에 방을 배치하는 방법 컴포넌트 배포단위 시스템 구성요소로 배포할 수 있는 가장 작은 단위 여러 컴포넌트를 서로 묶어서 단일 아카이브로 만들 수 있다. 잘설계된 컴포넌트 = 독립적으로 개발, 배포 가능한 능력 우리 프로젝트는 독립적으로 배포가 가능하지 않은데 단일 컴포넌트인가 컴포넌트의 역사 시즌1 초창기 라이브러리는 메모리의 어느 위치에 로드할지 지정해야함 한번 지정되면 재배치가 불가능 소스코드 형태의 라이브러리를 Application 코드에 포함시켜 컴파일 단점) 컴파일 시간이 너무 오래 걸렸다. 시즌2 라이브러리 코드를 분리하여 개별 컴파일 바이너리 형태로 심벌 테이블을 통해 Application코드를 컴파일 단점) 앱이.. 2022. 4. 8.
클린 아키텍쳐 1, 2, 3부 정리 (1장~11장) 1장 설계와 아키텍쳐 설계: 저수준 구조 결정사항 아키텍쳐: 고수준의 무언가 둘은 명확한 경계를 나눌수 없고 고수준에서 저수준으로 가는 의사결정의 연속성만 있다. 의사결정이라는 키워드를 봤을때 좋은 S/W설계를 목표로 하여 의사결정을 진행해야 하고 좋은 S/W 설계는 "필요한 시스템을 만들고 유지보수 하는데 투입되는 '인력'을 최소화 하는데 있다. 약간 인력의 최소화보다는 인력이 늘어남에 따라 생산성이 비례할 수 있는게 적절한것 같다. 결국엔 돈 "경제성" 이다. 현재 우리팀은 사례처럼 엉망진창이 되어가는 신호를 나타내고 있을까? 만약 그렇다면 원인이 무엇일까. 좋은 아키텍쳐를 통해 해결할 수 있을까. 2장 두가지 가치에 대한 이야기 두가지 가치는 행위: 요구사항을 코드로 구체화 구조: 변경이 용의한 프.. 2022. 3. 31.
클린 아키텍쳐를 어떻게 공부하지 클린 아키텍쳐를 읽기 전에 클린 아키텍쳐란 무엇이고 왜 등장하게 되었는지 어떤식으로 Swfit project에 적용할 수 있는지 알아보자. 클린 아키텍쳐 클린 아키텍쳐: 클린코드의 저자 엉클밥이 제시한 아키텍쳐 맨 바깥쪽의 원: 하위레벨의 메커니즘 안쪽으로 갈 수록 상위레벨의 정책적인 부분 밖에서 안으로 가는 화살표: 의존성은 밖에서 안으로 -> 안쪽원은 바깥쪽에 의존해서는 안된다! eg) 밖의 디비를 어떤걸 쓰는지는 안쪽에서 몰라야 한다. 초록색 부분 Interface Adapter의 역할 - 하위 레이어와 상위 레이어 사이 데이터 포메팅, 이벤트를 받아서 사용자에게 전달 - 이벤트 발생 -> 컨트롤러가 받음 -> 인터렉터에게 명령을 내림 -> 인터렉터가 비즈니스 로직 처리 -> 결과를 프리젠터에게 전.. 2022. 3. 26.
오브젝트 5장 6장 끄적거림 5장 책임 할당하기 데이터 중심 설계로 인해 발생할 수 있는 문제점의 해결책: 책임에 초점을 맞추는 것 그렇다면 어떤 객체에게 어떤 책임을 줄까? -> 상황과 문맥에 따라 변동 -> 따양한 관점에서 설계를 평가 데이터 보다 행동을 먼저 결정 협력이라는 문맥 안에서 책임을 결정 데이터 중심: 이 객체가 포함해야 하는 데이터가 무엇인가 -> 데이터를 처리하는 데 필요한 오퍼레이션은 무엇인가 책임 중심: 이 객체가 수행해야 하는 책임은 무엇인가 -> 이 책임을 수행하는 데 필요한 데이터는 무엇인가 협력이라는 문맥 안에서 책임을 결정 메시지를 전송하는 클라이언트의 의도에 적합한 책임을 할당 메시지를 결정한 후에 객체를 선택해야 한다. (메시지가 객체를 선택해야 한다.) 메세지는 클라이언트의 의도를 표현한다. 객.. 2022. 1. 28.
오브젝트 3장 4장 끄적거림 다양한 ~ Driven Development들이 있는데 결국 공통의 목표 (경제성이 뛰어난 프로그램 ->유연한 프로그램 -> 응집성 높고 결합도 낮고 캡쥴화 잘된 프로그램) 를 일련의 과정(제약)을 주면서 자연스럽게 이룰 수 있도록 하는 방법론인것 같은 생각 Responsibility Driven Development (책임 주도 설계) Behavior Driven Development (행위 주도 설계) Domain Driven Design (도메인 주도 설계) Test Driven Development( 테스트 주도 설계) 그래서 결국에 다양한 방법론들이 있지만 완성된 프로그램은 비슷한 구조를 가질 것 같은데..? 다른 공통점으로써 드는 생각은 전부 구현을 개발 단계중 제일 뒤로 미루는 방식 예시로 .. 2022. 1. 21.
리팩터링 2판 - 08. 기능 이동 8장 기능이동에 나오는 기법들은 다음과 같다. 함수 옮기기 필드 옮기기 문장을 함수로 옮기기 문장을 호출한 곳으로 옮기기 문장 슬라이드 하기 인라인 코드를 함수 호출로 바꾸기 반복문 쪼개기 반목문을 파이프 라인으로 바꾸기 죽은 코드 제거하기 설명만 봐도 대충 느낌오는 한 함수, 필드 옮기기, 반복문 제거 관련 기법, 죽은 코드 제거하기의 기법들이 있는 반면 문장에 대한 기법중 "문장" 이 의미하는게 뭔지 궁금해진다. 때로는 한 덩어리의 문장들이 기존 함수와 같은 일을 할 때가 있다. 라는 설명을 봤을때 처음 든 생각은 그냥 컨텍스트를 부여하지 않은 코드를 문장이라고 표현하신 듯 하다. 1. 함수 옮기기 [왜 하는가?] 모듈성 (Modularity) 모듈화가 얼마나 잘 되어 있느냐 프로그램의 어떤 부분을 .. 2022. 1. 15.
화상 워크샵, 회식에서 간단하게 할 수 있는 게임 추천 설치, 가입 필요없는 무료 게임 스플렌디 스플렌더 온라인 게임 버전 최대 4명 https://spendee.mattle.online/welcome 끄투 끝말잇기, 십자말풀이, 초성퀴즈 등등 단어 베이스 게임 최대 8명 https://kkutu.io/?server=0 갈틱폰 https://garticphone.com/ko Gartic Phone - 옮겨 말하기 온라인 게임, 옮겨 말하기! 지금 무료로 이 인기 게임을 플레이하세요. garticphone.com 2022. 1. 2.
2022 계획 새로운 해가 시작되면 항상 나름의 계획을 세웠다. 달성하면 좋을 것 같은 목표를 생각했다. - 달성하면 좋겠는데 꼭 달성할 필요가 있나 싶다가 달성을 못했다. 꼭 이룰 수 있는 목표를 구체적으로 세웠다. - 목표를 위해 노력하는데 동기부여가 잘 되지않아 흐지부지 되었다. 목표를 구체적으로 세우고 실천계획을 세웠다. - 실천 계획을 너무 빡세게 잡아서 결국 흐지부지 되었다. 그래서 26년동안의 짬바를 바탕으로 꼭 이뤄야 하는 목표를 세우고 실천할 수 있는 계획을 만들어 보았다. 올해 계획에서 제일 중요하게 생각했던건 열정으로 목표를 달성하지말고 시스템으로 목표를 달성하자 무의식 중에 나는 의지가 강하고 부지런한 인간이 아니니 목표보단 그냥 실천 계획을 세우는게 맞다라고 생각하고 있었는데 우연히 아래 유투브.. 2022. 1. 2.
2021 회고 회고의 시간이 돌아왔다. [작년 회고] 2020 회고 2020년은 네이버 인턴기간 뿐만 아니라 업무 외적으로도 많이 성장할 수 있는 한 해였다. 올 한해 굵직한 일들을 시간 순으로 정리해보았다. 스타트업에서 작업한 플리포스 앱 출시 네이버 AI 버 haningya.tistory.com 회고를 해야지 고민만 하면서 문득 작년보다 회고록에 적을 수 있는 굵직한 이벤트..? 가 없는것 같아서 이걸 적을까 말까 고민이 많았다. 무난한 1년을 보냈기에 작년을 돌아봤을때 어떤 일들을 했고 어떤 고민과 목표를 했었는지 도통 기억이 나지 않았다. 그치만 걱정마라구 기록은 iCalendar에 다해놨으니! 기억이 나지않으니 월별로 보면서 어떤 일들이 있었는지 정리했다. # 1월 1월 8일 네이버 나우 인턴쉽 종료 전환 면.. 2022. 1. 2.
RIBs 템플릿 설치 https://github.com/DevYeom/ModernRIBs GitHub - DevYeom/ModernRIBs: Uber's RIBs with Combine. Uber's RIBs with Combine. Contribute to DevYeom/ModernRIBs development by creating an account on GitHub. github.com /SourcePackages/checkouts/ModernRIBs/tooling 에서 sh install-xcode-template.sh 2021. 10. 30.
리팩터링 2판 - 02. 리팩터링 원칙 키워드 정리 리팩터링 정의 명사: 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 것 동사: 소프트웨어의 겉보기 동작은 그대로 유지한 채, 여러 가지 리팩터링 기법을 적용해서 소프트웨어를 재구성 하는것. 단순히 코드를 정리하는 작업이 아닌, 특정 리팩토링 방식에 따라 코드를 정리하는 것. 동작을 보존하는 작은 단계들을 거쳐 코드를 수정하고, 순차적으로 연결하여 큰 변화를 만들어 내는 것. 리팩토링 과정은 잘게 나눠진다. 과정 중에 코드는 항상 동작해야 한다. * 코드베이스를 정리하는건 재구성이라는 포괄적인 용어이고 리팩터링은 재구성 중 특수한 형태 * 리팩토링은 성능 최적화가 아니다. 리팩토링에 따라 성능이 좋아질 수도 나빠질 수도 있다. 리팩토링하다 코드가 깨지는.. 2021. 10. 14.
Xcode build 시간 줄이기 xcode 13으로 업데이트 이후에 빌드가 너무 오래 걸린다. 너무나도 오래 걸려서 내 개발환경에서 빌드 시간을 단축시킬 수 있는 방법을 찾아봤다. Speeding Up Xcode Builds A few suggestions you can use to speed your Xcode build times ricardo-castellanos-herreros.medium.com How To Boost Xcode’s Compile Time and Runtime Enhance your iOS development by improving your build speed betterprogramming.pub 다른건 모르겠고 아래 두가지 방법을 시도해보았다. 1. Xcode 에서 사용하는 쓰레드 늘리기 기본적으로 Xc.. 2021. 10. 14.
Just Memes Supprot page Just Memes Supprot page 2021. 10. 11.
DDD Start #1 도메인 모델 시작 키워드 요약 도메인: 소프트웨어로 해결하고자 하는 문제 영역 상위 도메인: 온라인 서점 하위 도메인: 회원, 주문, 혜택, 결제, 리뷰, 정산 ..etc 하위 도메인 중 일부는 외부 시스템을 이용할 수 있다. 도메인 모델: 특정 도메인을 개념적으로 표현한것 객체 기반 주문 도메인 모델: 기능과 주요 데이터 구성을 파악하는데 적합함 상태 다이어그램을 이용한 주문 상태 모델링, 그래프, 수학공식 등으로 표현할 수 있음 도메인 모델은 도메인 자체를 이해하기 위한 개념 모델 개념 모델과 구현모델은 다르지만 구현모델이 개념모델을 따라가도록 구현가능 ex) 객체 기반 개념 모델 -> 객체 지향 언어 사용, 수학적 모델 -> 함수형 언어 사용 하위 도메인을 하나의 다이어그램에 모델링 하면 안됨 -> 하위 도메인에 따라 용어의 의.. 2021. 10. 10.