본문 바로가기

전체 글

(87)
[Combine] WWDC19 - Introducing Combine 안녕하세요 제인입니다:) 지난 글에서 Combine의 핵심이자 기본인 Publisher, Subscriber에 대해 공식 문서를 토대로 정리해보았는데요, Combine에 대해 더 깊게 학습하기에 앞서 WWDC19 - Introducing Combine 영상을 보고 내용을 정리해보았습니다. 해당 세션에서는 Publisher, Subscriber, Operator 에 대해 개괄적인 내용을 담고 있어 Combine 프레임워크에 대해 한 번 훑어볼 수 있었던 세션이었습니다. Combine이란? A unified declarative API for processing values over time. Combine은 시간 경과에 따른 값 처리를 위한 통합된 선언적 API입니다. Key Concepts Publish..
[Combine] Combine 시작하기 - Publisher와 Subscriber 안녕하세요 제인입니다! 굉장히 오랜만에 글을 쓰는데... 컴바인으로 돌아왔습니다 ㅎ... 동아리 플젝으로 바빠서 블로그에 공부한 내용 정리를 못했는데, 동아리 후기도 가져오고 그동안 공부한 내용도 정리해서 올려보도록 할게요! 동아리 플젝에서 SwiftUI + Combine 으로 개발을 하게 되었는데요, 새로운 스택에 도전하니 재밌었습니다😆 더 깊게 공부해보면서 내용정리를 해보려구요 ! 오늘은 컴바인 시작하기로 Publisher와 Subscriber에 대해 정리해보겠습니다. Combine 이란? Combine은 Apple에서 공식적으로 제공하는 비동기 이벤트 처리를 위한 프레임워크입니다. 또 다른 비동기 처리 도구인 RxSwift는 third-party 라이브러리이지만 Combine은 Apple에서 공식..
[Architecture] Clean Architecture 안녕하세요 제인입니다 :) 유연한 설계에 관심이 많아지면서 클린 아키텍처에 대해 쫌쫌따리로 공부는 하고 있었지만, 머릿속에 확실하게 개념이 잡혀있진 않은 상태였는데.. 이제는 프로젝트에 적용까지 해보고 싶어서 클린 아키텍처에 대해 정리를 해보려고 합니다! 이번 게시글에서는 Robert C. Martin의 The Clean Architecture 라는 글을 번역해보면서 클린 아키텍처 개념에 대한 정리를 해보겠습니다. Clean Architecture란? 클린 아키텍처는 Robert C. Martin(aka 엉클밥, 밥아저씨)에 의해 고안된 소프트웨어 아키텍처 패턴입니다. 밥아저씨가 클린 아키텍처를 대체 왜 만들게 되었냐.. 하면! 기존의 여러 아키텍처에서 유사성을 찾았기 때문입니다. 기존의 아키텍처들은 세..
[TIL] 20240102 Closure 클로저는 일정기능을 하는 코드를 하나의 블록으로 모아놓은 것을 말합니다. 실행가능한 코드블럭이라고도 할 수 있습니다. 함수도 클로저의 한 형태 (함수는 이름이 있는 클로저) 클로저라는 개념 안에 함수가 포함되는 것이라고 할 수 있습니다. → 함수: named Closure , 이외의 클로저들은 다 (unamed) Closure 클로저는 일급객체의 특성을 가지고 있음 그렇기 때문에 변수나 상수에 대입하고, 반환(return)가능하며 파라미터로 받을 수 있다. == 전달인자, 변수, 상수 등에 저장 및 전달이 가능하다는 뜻 함수와 다르게 이름정의가 필요하지는 않지만, 매개변수 전달과 반환 값이 존재할 수 있다는 점이 동일 클로저 표현식 { (parameters) -> ReturnType in ..
[회고] 2023년 회고 2023년을 마무리하며 작년에 이어 올해도 한 해를 마무리하는 시점에서 회고를 해보려고 한다. 올해는 작년 만큼 개발 관련 활동을 많이 하진 않아서 회고를 쓸까말까 고민했는데, 취업 준비를 하고 있는 시기니까 한 해를 돌아보고 정리하면 내년에 더 열심히 나아가는 데 도움이 될 것 같아서 써보려 한다. 이번엔 카테고리별로 정리를 해봐야겠다!! 코딩테스트 코딩테스트 준비를 작년 말부터 시작해서 사실 거의 올해부터 본격적으로 준비했다고 할 수 있겠는데, PS를 본격적으로 하면서 언어를 Swift로 딱 정해서 꾸준히 푸니까 재미를 붙여서 꽤나 꾸준히 문제를 풀었던 것 같다. 한창 준비할 때는 하루에 두 문제씩은 푸는 걸 목표로 딱 잡고 프로그래머스 문제 꾸준히 풀고, 취약한 유형은 백준에서 문제 찾아서 풀이하면..
[Algorithm/Swift] BOJ(골드4) - 2573 빙산 안녕하세요 제인입니다 :) PS 글은 오랜만인 것 같은데.. 오늘은 백준 문제 중 하나를 정리해보려고 합니다! BFS 문제인데 한번 더 생각해야 될 부분이 있는 문제여서 정리해두면 좋을 것 같아서 처음으로 백준 문제를 가져와봤습니다. 바로 시작하겠습니다 ! 문제 링크 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 문제 풀이 간단하게 문제 요구 사항을 정리해보자면, 2차원 배열에 빙산의 각 부분별 높이 정보가 주어지는데, 인접한 칸이 0일 경우(그림에서 빈칸), 빙산이 일년마다 그 칸에 인접한 빈칸의 개..
[TIL] 20231215 Trouble Shooting - 싱글턴 인스턴스의 초기화 시점 일단 머리부터 박고 시작하겠슴니다............. 왜냐면... 전에 썼던 프로퍼티 초기화 관련 이슈 해결기에 대한 글에서 잘못된 점을 찾아가지구... 정정하고자... 다시 글을 쓰게 됐기 때문.. [TIL] 20231207 Trouble Shooting - 싱글턴 인스턴스의 초기화 시점 부캠 동료분에게 받은 질문! 싱글턴 인스턴스는 다른 클래스에서 전역 변수나 상수에 할당해두고 해당 변수나 상수에 접근해서 사용하면 안되나 janechoi.tistory.com 하하 블로그에 절대절대 애매한 정보나,, 잘 모르는 것에 대해서는 쓰지말자! 라는 생각으로 정리를 해왔었는데 한번만 봐주십셔 예.. TIL은 봐주세여... 다시 정정 들어가겠습니..
[iOS] TDD와 Unit Test TDD(Test-Driven Development) 테스트 주도 개발(Test-driven development TDD)이란, 반복 테스트를 이용한 소프트웨어 방법론으로, 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나입니다. TDD 개발주기 Red: 실패하는 테스트 코드 작성 Green: 실패한 테스트를 통과하기 위한 최소한의 코드 변경 (테스트에 성공) Refactor: 테스트의 성공을 유지하면서 코드를 더 나은 방향으로 개선 일반 개발 방식 vs. TDD 개발 방식 일반적인 개발 방식은 요구사항 분석 → 설계 → 개발 → 테스트 → 배포의 형태의 개발 주기를 갖습니다. 해당 방식에서는 설계에 따라 기능 개발을 완료한 후 배포하기 전, 해당 코드의 안정성이나 버그가 없는지를 검사하..