본문 바로가기

전체 글

(193)
[Swift] LeetCode: Greatest English Letter in Upper and Lower Case (아스키코드) https://leetcode.com/problems/greatest-english-letter-in-upper-and-lower-case/ 문제 문자열 s를 주는데 여기서 소문자, 대문자가 모두 나온 문자 중 가장 큰 대문자를 리턴하는 문제입니다. 풀이방법 Set 배열하나와 result 배열 하나를 두어서 set 배열에는 s 문자열을 이루는 문자들을 모두 넣어주었습니다. -> 근데 contains 함수를 사용하면 굳이 set 배열을 만들 필요가 없겠네요.. 그리고 set 배열을 돌면서 소문자이면 대문자가 있는지, 대문자이면 소문자가 있는지 검사 후에 result 배열에 넣어주었습니다. -> 소문자인지 대문자인지 구별하는 방법이 Swift5 에서 Character 값에 대해 isLowerCase 를 사용..
[TUDY] FirebaseAuth(파이어베이스 인증) + 애플, 카카오 로그인, 자동로그인 TUDY 프로젝트에서 소셜로그인 + 파이어베이스 인증으로 로그인, 회원가입 기능을 구현했던 경험을 적어보려고 합니다. (혼자 공부하고 찾으며 작성한 것이라 정보가 정확하지 않을 수 있습니다 ㅠ_ㅠ 지적, 조언 환영합니다) 파이어베이스 인증 - 로그인 제공업체 https://firebase.google.com/docs/auth/ios/start?hl=ko&authuser=0 Apple 플랫폼에서 Firebase 인증 시작하기 | Firebase Documentation 의견 보내기 Apple 플랫폼에서 Firebase 인증 시작하기 Firebase 인증을 사용하면 사용자가 앱에 로그인할 때 이메일 주소와 비밀번호를 통한 로그인 방법이나 Google 로그인, Facebook 로그인과 같은 제휴 firebas..
[TUDY] Coordinator 패턴 적용기 !! 프로젝트가 거의 끝나가면서 TUDY 프로젝트에 담당한 코디네이터 패턴을 적용했던 경험을 적어보려 합니다! TUDY 프로젝트는 MVC 입니다. Coordinator Pattern 접하기 우선 코디네이터 패턴을 처음 접하게 된 것은 부스트캠프 프로젝트를 구경하다가 코디네이터 패턴이라는 것을 쓰고 있길래 어떨때 사용하는 것이지? 하고 찾아보았습니다. https://github.com/boostcampwm-2021 코디네이터 패턴에 대한 자세한 설명은 생략하지만 결론은 화면전환의 부담을 뷰컨트롤러에서 코디네이터로 모두 위임하겠다는 것이 코디네이터 패턴의 주 목적이었습니다. Coordinator Pattern 사용 이유 1 저희 TUDY 프로젝트에서는 로그인 -> 회원가입의 절차에 대략 5개의 뷰가 있었고 여러 ..
[iOS] Static, Dynamic Library, Framework Xcode에서 Cocoapods, Carthage, SPM 같은 도구를 사용하여 외부 프레임워크를 사용합니다. 프레임워크가 어떻게 구성되어 있고, 동작하고, Static Framework와 Dynamic Framework의 차이가 무엇인지 알아보려고 합니다. Framework 프레임워크는 공유 라이브러리와 헤더 및 다른 리소스의 하위 디렉토리를 포함하는 번들입니다. 프레임워크는 Dinaymic shared library, nib 파일, 다국어 문자열, 헤더 파일, 레퍼런스 문서와 같이 공유 리소스를 패키지로 캡슐화하는 계층 구조 파일 디렉토리 입니다. 리소스 사본은 프로세스 수에 상관없이 항상 물리적으로 메모리에 상주하며 리소스 공유로 메모리를 차지하는 공간을 줄이고 성능을 향상 시킵니다. 번들이라면 실..
[iOS] Compositional Layout 에 관하여 CollectionView를 무작정? 쓰다가 레이아웃 잡을 때 감으로 때려 맞추는 일을 그만하기 위해서 정리를 해보려고 합니다.. Layout 우선 레이아웃을 사용하는 이유는 컬렉션 뷰의 컨텐츠를 정렬하기 위해서입니다. 레이아웃이 잘 잡혀있으면 컨텐츠를 그냥 넣기만 하면 레이아웃대로 구성이 되기 때문이죠! 이 레이아웃을 커스텀 하는 방법으로는 두 가지 방법이 있습니다. UICollectionViewFlowLayout UICollectionViewCompositionalLayout 우선 flow 레이아웃은 iOS 6.0+ , compositional 레이아웃은 iOS 13.0 + 에서 사용 가능합니다. flow 레이아웃이 훨씬 오래됐다는 것을 알 수 있죠 두 레이아웃 객체 모두 UICollectionVie..
[두깃] UI리팩토링, 토스트메세지 추가 UI리팩토링 클론코딩 강의를 듣다가 UI 제약을 거는 부분을 UIView를 extension 해서 함수 하나로 모두 처리하는 것을 보고 감명을 받아.. 요 플젝에서도 적용해보기로 했다. 이건 제약만 걸어주는 코드로 함수하나로 처리할 수 있도록 만들어 놓은 것이다. extension UIView { func anchor(top: NSLayoutYAxisAnchor? = nil, leading: NSLayoutXAxisAnchor? = nil, trailing: NSLayoutXAxisAnchor? = nil, bottom: NSLayoutYAxisAnchor? = nil, paddingTop: CGFloat = 0, paddingLeading: CGFloat = 0, paddingTrailing: CGFl..
[iOS] 카카오 로그인 이해하기 로그인.. 간단해보이지만 이해하기 어려운 부분이 아닐까..ㅠㅠ 프로젝트에서 간편 로그인 기능을 사용하기로 했기 때문에 간편 로그인 기능도 OAuth2 프로토콜 기반의 사용자 인증 기능이라 공부해보려고 합니다. OAuth 2.0 주요 용어 Authentication 인증, 접근 자격이 있는지 검증하는 단계입니다. Authorization 인가, 자원에 접근할 권한을 부여하는 것입니다. 인가가 완료되면 리소스 접근 권한이 담긴 Access Token이 클라이언트에게 부여됩니다. Access Token 리소스 서버에게서 리소스 소유자의 보호된 자원을 획득할 때 사용되는 만료 기간이 있는 Token 입니다. Refresh Token Access Token 만료시 이를 갱신하기 위한 용도로 사용하는 Token 입..
[Swift] 프로그래머스 Lv1. 신규 아이디 추천 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 정규식으로 풀어보려했지만 그냥 구현하고 싶어 구현 하다가? filter 에 조건을 여러개 넣었더니 시간안에 타입체크 할 수 없다고 쪼개보라고 에러가 발생했다. ID = ID.filter { ("a"