전체 글

CS

[CS] CS 내용 정리

1. 1바이트는 몇 비트인가? 과거에는 1바이트는 7~9비트 등 다양했으나, 현재는 8비트로 표준화 되어있다. 컴퓨터가 미국에 특화되어 개발되었다. 그리고 미국권 문자를 표현하는 문자 인코딩은 ASCII인데, 미국에서 쓰이는 문자는 7비트로 충분했었기 때문에 초기에는 1바이트가 7비트 였던 적도 있었다. 그러나 데이터 송수신의 오류를 검출하기 위한 패리티 비트 1비트가 추가되면서 8비트가 되어졌다. (유럽권 문자를 고려해서 8비트로 된 것 같다는 이야기도 있음) 1-1) ASCII란? ASCII는 미국권 문자를 표현하는 문자 인코딩이다. 통신을 위한 기호, 특수기호, 숫자, 알파벳 대소문자를 표현할 수 있다. 2. 1픽셀은 몇 바이트인가? 채널이 몇개냐에 따라서....... 컬러 이미지의 경우 3바이트이..

기타

인텔리픽 모의면접 후기

이력서, 면접 등을 준비하면서 아직 내가 부족한 부분이 많다고 생각이 되었다. 그래서 이러한 부분에 대한 조언을 듣고 싶어 인텔리픽에 취업 코칭이라는 프로그램이 있어 해당 과정을 신청했었다. 해당 과정은 이력서와 이력서에 대한 내용을 기술하면 이를 토대로 모의면접까지 진행하는 프로그램이니 개발자로써 취업을 준비하시는 분들이라면 꼭 한번 해보는 것이 좋을 것이라고 생각한다. 우선, 나의 고민은 자격요건에 어느정도 부합하는 기업임에도 불구하고 서류 탈락이 되는 경우가 꽤 많았다. 이 부분은 해당 경험의 부족보다는 이력서를 쓰는 요령이 없어서라고 판단되었다. 그래서 이에 대한 궁금증을 적어서 제출했다. 일주일 정도의 시간이 지나서 해당 프로그램에서 연락이 오게 되었고, 모의 면접을 진행했다. 30분 정도의 면..

iOS 개발/Combine

[Combine] Combine 정의(0)

프로젝트 쉽고를 SwiftUI로 진행하는 것을 채택하고 비동기 프로그래밍으로 Combine을 채택했었다. 우선, RxSwift가 아닌 Combine을 채택한 이유는 SwiftUI와 Combine이 굉장히 궁합이 좋다고 알고 있었기 때문이다. 또한 Combine은 Apple에서 2019년에 만든 새로운 프레임워크이며, RxSwift의 애플 버젼이기 때문에 미래에 많이 사용될 것 같아서가 주된 이유이다. 이러한 이유로 Combine을 사용했고, 이에 대해 내용을 정리해보고자 한다. Combine 주요 구성 요소 Publisher Subscriber 객체에 변경되는 값을 내보낼 타입을 선언하기 위한 프로토콜이다. Output, Failure 타입이 제네릭으로 구현되어있다. Subscriber Publisher..

iOS 개발/RxSwift

[RxSwift] - RxSwift의 개념

취업 준비를 하고 있는 요즘 자격요건에 RxSwift에 관련된 내용을 종종 발견할 수 있었다. 이전에 진행한 프로젝트에서는 RxSwift가 아닌 Combine을 활용해 작업을 진행했어서 RxSwift에 대한 내용을 정리해보고자 한다. RxSwift란? Swift에서는 비동기 프로그래밍을 할 때 RxSwift, Combine을 사용한다. 그 중 RxSwift는 Reactive eXtension + Swift로 관찰 가능한 시퀀스를 사용하여 비동기 및 이벤트 기반 프로그램을 구성하기 위한 라이브러리이다. RxSwift를 사용하는 이유 Swift에 반응형 프로그래밍을 더해주어, 비동기 코드를 동기화 코드처럼 작성 가능 일관성이 없는 비동기 코드를 하나의 비동기 코드로 개발 가능 서로 다르게 구현한 로직을 조합..

회고

[SwiftUI] - 쉽고(택배 조회 서비스) 회고

2개월 가량 진행하던 택배 조회 서비스 쉽고(ShipGo)의 프로젝트가 끝이 나고 있다. 앱 스토어에 심사를 받고 있는 상태이고(앱 이름이랑 화면에서 보여지는 이름 설정을 다르게 해서 이미 한번 리젝 당함..) 조만간 출시가 되지 않을까(?) 싶다. 이름을 바꾼 후 심사를 받아 무사히 통과를 했다. 현재는 App Store에 출시가 완료되었다!! 생각보다 심사를 빨리 통과했다. 그리고 몇가지 오류를 수정해서 버젼 업데이트까지 진행했다. 프로젝트를 제대로 시작한게 12월 중순 정도 였던 것 같은데 그때 당시 정말 SwiftUI에 대해서 아무것도 모르는 상태에서 개발을 시작했다. 같이 프로젝트를 진행한 팀원의 도움을 받기도 하고, 검색을 하기도 하며 SwiftUI로 View를 구성했는데, 비록 2개월정도 밖..

iOS 개발/SwiftUI

[SwiftUI] - Firebase firestore 객체 데이터 삭제

swiftui 에서 firebase를 활용해 다음과 같이 사용자별로 이메일, 객체 배열을 저장했다. 이후, 구글을 통해 객체 배열을 삭제하는 함수를 작성했는데, 화면에서는 함수가 제대로 작동하는 것처럼 나왔지만, 실제 firebase에서는 데이터가 일부만 삭제되는 현상이 발생했다. 이러한 현상은 Date 타입을 사용하는 경우 발생한다고 한다. 현재 Package model 코드는 다음과 같다. struct Packages: Codable, Hashable { var timeStamp: Date var trackCompany: String var trackNumber: String var setTrackNumber: [String: Any] { return [ "timeStamp": self.timeSta..

기타

쉽고 개인정보처리방침

회사는 홈페이지,이메일,API,스마트폰 어플리케이션등의 방법으로 수집 및 이용 목적에 따라 필요한 최소한의 고객정보를 수집하고 이용합니다. 수집하는 개인정보 항목과 수집 및 이용 목적은 다음과 같습니다. 1.1 회원 가입[필수] ① 수집항목 - [필수]아이디(이메일),비밀번호 - [선택]오픈인증 서비스(카카오, 애플 등)의 회원키 ② 수집 및 이용 목적 - 고객 본인 확인 - 택배 서비스(배송조회, 택배예약) 이용정보 제공 및 푸시메세지 제공 1.2 쇼핑다이어리[선택] ① 수집항목 - [필수] 구매 상품 혹은 구매 예정 상품의 택배사명, 운송장번호, 상품 정보, 주문정보 ② 수집 및 이용 목적 - 배송정보 제공 - 쇼핑몰 불러오기 기능개선 - 이용자 구매 성향에 기반한 맞춤 광고 게재 - 이벤트 및 광고..

iOS 개발/SwiftUI

[SwiftUI] - firebase 회원가입, 로그인 시 에러 처리 View에 적용하기

로그인, 회원가입 기능을 수정하는 작업을 진행하게 되었다. 해당 View를 구성하는 데 있어서 이메일 형식, 비밀번호 형식이 아니거나 비밀번호와 비밀번호 확인이 동일하지 않을 때 에러를 출력하는 것은 어렵지 않았다. 그러나 firebase와 연동해 해당 이메일이 이미 존재하거나, 이메일을 잘못 입력했을 때 이를 view에 보이게 하는 문제에 직면했다. 우선 이메일 형식, 비밀번호 형식을 구분하는 함수는 다음과 같다.(해당 함수는 다른 여러 곳에도 소개되어 있다) //이메일 형식 확인 함수 func checkEmail(str: String) -> Bool { let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}" return NSPredic..

bamtorii
bamtori