본문 바로가기

분류 전체보기

(64)
[회고] 2024년 11월 27일(수) 수행청하 프로젝트 구현필터 화면과 홈 화면 데이터 바인딩 및 필터링 기능 구현청년정책 목록 조회 기능 및 청년정책 상세 조회 기능 Clean Architecture 구조로 리팩토링공부X만족X아쉬움Clean Architecture 구조로 리패토링에 대한 몰입으로 그 외부분에서 전체적으로 가독성 있는 코드 작성 미흡개선점가독성 있는 코드 작성을 생활화 하자!느낀점조금 더 속도감 있게 코드를 작성해보자 [회고 구조]1. 수행: 오늘 하루 동안 했던 업무 정리2. 공부: 일을 하면서 인터넷으로 검색해서 알게 된 정보들, 혹은 팀원과 얘기하면서 알게 된 도메인 지식들을 정리3. 만족: 업무를 하면서 좋았던 점4. 아쉬움: 업무를 하면서 아쉬웠던 점5. 개선점: 아쉬움에서 썼던 것을 토대로 다음날 액션을 취할 수 ..
[Swift 문서 탐방] OOP, POP에 관하여 OOP란 무엇일까?객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 현실 세계의 사물을 코드로 모델링하여 문제를 해결하는 프로그래밍 패러다임입니다. OOP의 핵심은 클래스와 객체를 활용하는데 있으며, 클래스는 데이터와 동작을 정의하는 청사진이고, 객체는 이 클래스에서 생성된 실체입니다. 예를 들어, "Car"라는 클래스를 만들고 , "myCar"라는 객체를 생성해 속성(Property)과 동작(Method)를 구현할 수 있습니다. OOP의 4대 핵심 원칙OOP의 핵심 원칙으로 캡슐화, 상속, 추상화, 다형성이 있습니다.캡술화는 데이터와 메서드를  하나로 묶는 개념으로, 외부 접근을 제한하여 데이터를 보호합니다.상속은 기존 클래스의 특성을 새로운 클래스에 물려주는 개념으로..
[회고] 2024년 11월 21일(목) 수행청하 프로젝트 정기 회의게시판별 자주 보는 게시글 조회 API 호출 시 데이터가 있는 게시판들만 응답으로 보내는게 아닌 데이터 보유 여부와 관계없이 모든 게시판에 대한 데이터를 보내도록 API 수정 요청청하 구현필터 화면 UI 레이아웃 구현 - Bottom Sheet 구현공부Compositional Layout을 이용한 태그 구현 (참고 자료)PinLayout을 이용한 Animation 적용(참고 문서)만족태그 구현 시 RxDataSource는 가장 최근 업데이트 기준일이 2년 전이므로 추후 유지 보수 목적을 위해 Diffable DataSource로 구현처음 시도해보는 사항들이지만 정확한 매커니즘에 대한 이해를 바탕으로 구현하여 만족스러움아쉬움처음 시도해보는 사항들이라 가독성 있는 코드 작성이 ..
[회고] 2024년 11월 20일(수) 수행백준 2164번  Swift 언어로 풀이청하 구현홈 화면 UI 구현 및 데이터 바인딩공부처음 풀이에서는 removeFirst() 사용으로 전체 시간 복잡도가 O(n²)로 시간 초과 발생으로 ArraySlice 타입을 이용해 배열(Queue)수정시 메모리 복사가 일어나지 않게 하여 removeFirst() 메서드 사용 시 시간복잡도 O(1)가 걸리도록 하여 전체 시간 복잡도를 O(n) 으로 개선(ArraySlice 타입 문서 링크)만족ArraySlice에 대해 새로 공부할 수 있는 계기가 되어 좋았음아쉬움X개선점X느낀점매일매일 성장하자! [회고 구조]1. 수행: 오늘 하루 동안 했던 업무 정리2. 공부: 일을 하면서 인터넷으로 검색해서 알게 된 정보들, 혹은 팀원과 얘기하면서 알게 된 도메인 지식들을 ..
[Swift 문서 탐방] Structures and Classes 구조체(Structure)와  클래스(Class)는 프로그램 코드의 기본적인 구성 요소로 프로퍼티(Property)와 메서드(Method)를 함게 정의하여 데이터와 기능을 묶어 관리하는 커스텀 타입입니다.Comparing Structures and Classes구조체와 클래스은 아래와 같은 공통점을 가지고 있습니다.데이터를 저장하기 위한 프로퍼티(Property)가 존재합니다.기능을 정의하기 위한 메서드(Method)가 존재합니다.서브스크립트 구문을 사용하여 값에 대한 액세스를 제공하기 위해 서브스크립트를 정의할 수 있습니다.초기값 설정을 위해 생성자(Iitializer)를 가지고 있습니다.기본 구현을 넘어 기능을 확장하도록 확장이 가능합니다.특정 종류의 표준 기능을 제공하기 위한 프로토콜을 준수합니다...
[회고] 2024년 11월 14일(목) 수행Swift의 Enumerations, Structure, Class에 대해 블로그 정리청하 주간 회의공부Swift의 Enumerations, Structure, Class 기본 내용 정리Cursor-based Pagination과 Offset-based Pagination의 개념 및 장단점 정리만족X아쉬움청하 주간 회의 중 데이터 페이징 처리 여부 결정하는 논의 중 팀원들에게 Cursor-based Pagination과 Offset-based Pagination을 비교 설명해야하는 순간이 있었는데, 머리로만 이해하고 있던 상태에서 팀원들에게 설명하려고 하다보니 매끄러운 설명을 이어나가지 못했다.개선점Cursor-based Pagination과 Offset-based Pagination의 개념 및 장단..
[Swift 문서 탐방] Enumerations 참고사이트https://docs.swift.org/swift-book/documentation/the-swift-programming-language/enumerations#Initializing-from-a-Raw-Value (Swift 공식 문서 - Enumerations)EnumerationsEnum은 관련된 값들을 한 그룹으로 묶어놓은 타입을 의미하며, 이 관련된 값들을 Type-safe 하게 사용할 수 있습니다.여기서 관련된 값의 타입은 String, Character, Interger, Float 등의 다양한 타입이 될 수 있습니다.(Raw Value)또한, Enum은 각각의 다른 케이스 값과 함께 저장될 모든 유형의 연관된 값(Associated Value)를  지정할 수 있습니다. 마지막으..
[Swift 문서 탐방] 기본 자료형(feat. CS)(작성중) StringString은 일련의 Character들로 이루어진 데이터 타입으로, Copy-on-Write(CoW) 기법을 통해 메모리 성능 최적화합니다. 추가적으로 String을 이루는 Character들은 Extended Grapheme Cluster(확장된 문자소 클러스터)로 이루어져 있으며, 또 이 Extended Grapheme Cluster는 Unicode Scalar Value(유니코드 스칼라 값)들로 이루어져 있습니다.Copy-on-Write(CoW)Copy-on-Write 기법은 말 그대로 쓰기 작업이 일어날 때 복사가 된다는 의미입니다.String에서는 CoW 전략을 사용할 때 버퍼(Buffer)에 데이터를 임시로 저장합니다. 만약 이 버퍼를 여러 다른 문자열 인스턴스가 참조하고 있을 경..