본문 바로가기 메뉴 바로가기

B_log

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

B_log

검색하기 폼
  • 분류 전체보기 (311)
    • 알고리즘 학습 (174)
      • 알고리즘 개념 (8)
      • 프로그래머스 (48)
      • Codility (12)
      • 백준 알고리즘 (62)
      • 파이썬 알고리즘 인터뷰 (13)
      • 삼성 SWEA (20)
      • 종만북 with 파이썬 (5)
      • with Swift (1)
    • iOS 앱개발 (66)
      • Swift Basic (14)
      • iOS (33)
      • WWDC (6)
      • 암호화폐 거래소 앱 프로젝트 (6)
      • Daum Cafe 검색 앱 프로젝트 (5)
      • Swift GuideLines (2)
    • Web (29)
      • 개념 학습 (3)
      • Python | Django (18)
      • 우아한테크코스 (2)
      • AWS (2)
      • Java Script (4)
    • SQL 학습 (4)
      • 프로그래머스 SQL 문제풀이 (4)
    • 개발 독서 (15)
    • 개발 정보 (4)
    • 회고 (2)
    • 주식 (0)
      • 주식 독서 (0)
    • 제품 구매 후기 (2)
    • 이런 저런 생각들 (0)
  • 방명록

전체 글 (311)
[iOS] ViewController 초기화시 init과 ViewDidLoad의 차이

init() vs viewDidLoad() in UIViewController 왜 갑자기 이런 의문이 들었을까? UI 라이브러리인 Texture를 학습하며 init과 didLoad에 차이점을 학습한 경험이 있어요. UIKit에서 UIViewController를 구성할 경우 init은 Main 스레드에서 동작하지만, Texture에서는 init과 didLoad의 차이가 있었어요. 어떤 코드의 경우 init에서 초기화를 하는지, didLoad에서 초기화를 하는지에 따라 큰 차이를 낼 수 있었어요. 예를 들면, UI 같은 경우 갱신을 Main 스레드에서 진행하기 때문에 굳이 init에서 선언하기보다 didLoad에서 선언하는 것이 좋았죠. 그래서 작업할 때 초기화 위치에 대한 고민을 많이 했던 것 같아요. 그..

iOS 앱개발/iOS 2022. 1. 19. 21:01
[Git] GitHub 팀원들의 Approve를 받아야 Pull Request의 Merge가 가능하도록 만드는 기능 추가하기

개요 현업에서 굉장히 좋았다고 느꼈던 기능이 있어 이번 팀 프로젝트를 진행하며 적용시켜보고 싶었어요. 그래서 그 내용을 공유하려고 해요 :) 규모가 큰 프로젝트일수록 브랜치 전략이 필요하고, 브랜치가 세분화됨에 따라 Pull / Request의 중요성은 더 커져요. 특히 혼자만의 판단으로 Merge할 경우 나중에 큰 문제가 생길 수 있어요. 객관적인 판단을 위해 팀원들의 리뷰와 승인이 있을 때에만 Merge를 진행할 수 있는 제약 조건이 있다면 조금 더 신뢰성 있게 프로젝트가 관리될 수 있을 거예요. 그래서 이 글에서는 GitHub에서 팀원들의 승인이 N개 이상일 때에만 Merge 가능하게 제약을 거는 방법에 대해 이야기 해볼게요. 제약 설정하기 방법은 매우 간단해요. 우선 제약을 생성하기 원하는 Git..

개발 정보 2022. 1. 17. 23:06
[백준 알고리즘] - 트리 순회(1991번) with Swift

문제 풀이 과정의 고민 시뮬레이션으로 문자열을 직접 탐색하는 것도 방법일 수 있다고 생각했어요. DFS처럼 탐색하지만 탐색 조건을 변경하면서요. 하지만 그런 방식은 상황이 너무 복잡해지고 작은 디테일에서 오류가 쉽게 발생할 수 있다고 생각해서 노드를 직접 만드는 것으로 생각했어요. 이 글에서 전위, 중위, 후위 순회에 대한 설명을 하진 않을 계획이에요. 다만, 각 탐색 메서드에서 명백하게 출력의 우선순위를 보여주는 것이 중요하다고 생각해요. 전위는 말 그대로 부모 노드의 데이터를 먼저 보여주는 것, 중위는 왼쪽 노드부터 탐색한 후 부모 노드의 값을 출력해주고 오른쪽 노드를 탐색하는 것처럼이요. 언어를 조금 고민했어요. 파이썬 풀이도 추가로 올릴 예정이지만, 아무래도 Node 클래스를 이용해 풀이하는 데에..

알고리즘 학습/백준 알고리즘 2022. 1. 16. 11:02
[iOS] 시뮬레이터 없이 UI 확인하는 Preview 기능 만들기

문제 상황 파악하기 UI를 구현할 때 가장 힘든 것 중 하나가 매번 빌드하면서 결과물을 확인하는 것이죠. 물론, Figma 등으로 UI 스펙이 확정된 경우 UI를 그리기 상대적으로 편하지만 그래도 여전히 UI 확인을 실시간으로 할 수 없다는 건 불편한 것 같아요. 특히 현업에서 빌드를 한 번 돌리는데 너무 많은 시간이 소요되었기 때문에 더 힘들었어요(단순 빌드가 20분 넘게 걸린 적도..). 그래서 이번에는 Preview를 통해 화면을 미리 볼 수 있는 기능을 구현해볼게요. Preview 구현하기 우선 도구는 SwiftUI에요. "내 프로젝트는 UIKit인데?" 하는 분이 있을 수도 있지만 프로젝트의 UI와 아무 상관이 없어요. 저 역시 프로젝트는 UIKit와 Snapkit으로 구현하고, SwiftUI는..

iOS 앱개발/iOS 2022. 1. 3. 18:01
[iOS] 배열의 요소 안전하게 접근하기

문제 파악하기 Swift에서 배열의 요소에 접근할 경우를 생각해볼게요. let fooArray = [1,2,3] print(fooArray[0]) // 1 출력 위의 상황에서는 문제없이 결괏값이 출력돼요. 그럼 배열의 범위를 벗어날 경우는 어떻게 될까요? let fooArray = [1,2,3] print(fooArray[100]) // Index out of range 에러 발생 당연히 범위를 벗어나는 에러가 발생하죠. 여기서 문제는, 결괏값이 옵셔널이라 nil로 반환되는 것이 아니라 에러가 된다는 것이에요. 혹시 배열의 요소에 접근한 결과가 옵셔널인지 타입을 확인해볼게요. let fooArray = [1,2,3] print(type(of:fooArray[0])) // Int 출력 옵셔널의 Int가 아..

iOS 앱개발/Daum Cafe 검색 앱 프로젝트 2022. 1. 3. 17:40
[iOS] 문자열에서 HTML 태그만 제거하기

문제 상황 이해하기 API를 통해서 문자열을 호출할 때 HTML 태그와 함께 오는 경우들이 있어요. 예를 들면, Kakao API에서 카페 검색 정보를 호출할 때 결과물 중 제목과 콘텐츠에 HTML 태그들이 섞여와요. 아래는 Kakao 개발 가이드에서 보여주는 Response의 예시에요. HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { "meta": { "is_end": false, "pageable_count": 983, "total_count": 218662 }, "documents": [ { "cafename": "쭉빵카페", "contents": "무대의상들 정보 궁금해하는 게녀들이 있길래 가져왔어! 이번에는 레드벨벳이랑 아이유 의상..

iOS 앱개발/iOS 2022. 1. 3. 16:58
[DaumCafeSearch 앱] 네트워크 기능 구현하기

이전 글: Entity 및 모델 구현하기 관련 Git Pull Request: KakaoAPI와 통신할 네트워크 기능을 구현해요 [DaumCafeSearch 앱] Entity 및 모델 구현하기 이전 글: 앱 구조 설계하기 관련 Git Pull Request: https://github.com/helloworldjay/daumcafesearch/pull/7 [DaumCafeSearch 앱] 앱 구조 설계하기 이전 글: 프로젝트를 시작하며 구조 설계하기 앞선 글에서.. jayb-log.tistory.com NetworkManager 설계하기 Kakao API와 통신을 담당할 NetworkManager 객체를 구현해요. 현업에 가기 전까지는 URLSession으로만 기능 구현을 했었어요. DataTask를 통..

iOS 앱개발/Daum Cafe 검색 앱 프로젝트 2022. 1. 3. 16:28
[iOS] Kakao API 사용시 Date 타입이 iso8601일 때 iOS에서 Decoding이 안되는 경우

문제 상황 이해하기 카카오 API를 활용해서 JSON을 받아오고, iOS에서 decoding 하려고 하는데 문제가 발생했어요. 우선 아래는 Kakao API 개발 가이드에 나오는 내용이에요. datetime의 타입은 Datetime이고, 그 형식은 IOS 8601이에요. 그래서 아래와 같은 코드로 Decoder를 설정한 후 Decoding을 진행했어요. let decoder = JSONDecoder() decoder.dateDecodingStrategy = .iso8601 분명히 dateDecodingStrategy가 iso8601이기 때문에 문제가 없어 보였어요. ISO 8601은 일종의 규격이기 때문에 통일되어 있을 거라고 판단했어요. 그런데 원하는 결과물이 나오지 않았고, 어디에서 문제가 발생했는지..

iOS 앱개발/iOS 2022. 1. 3. 16:22
이전 1 ··· 3 4 5 6 7 8 9 ··· 39 다음
이전 다음
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 파이썬알고리즘인터뷰#4장
  • django
  • Distinct#Codility#Python
  • 나무자르기#BOJ#이분탐색#Python
  • 리모컨#완전탐색#BOJ#Python
  • 반복수열#백준알고리즘#Python
  • 랜선자르기#이분탐색#BOJ#Python
  • 섬의개수#백준알고리즘#Python
  • django#slicing
  • 배열합치기#분할정복#BOJ#Python
  • 미로 탐색#백준알고리즘#Python
  • Brackets#Stacks and Queues#Codility#Python
  • 병든 나이트#BOJ#탐욕법#Python
  • Swift#Tuples#Range
  • 날짜 계산#BOJ#완전탐색#Python
  • NumberofDiscIntersections#Codility#Sort#Python
  • 토마토#백준알고리즘#Python
  • 순열사이클#BOJ#Python
  • N으로 표현#DP#Programmers#Python
  • 종이자르기#분할정복#BOJ#Python
  • 백준 알고리즘#BackTracking
  • 쿼드트리#BOJ#분할정복#Python
  • 텀 프로젝트#백준알고리즘#Python
  • API#lazy#
  • PassingCars#Codility#Python
  • 암호코드#dp#BOJ#Python
  • 터틀비치#리콘#xbox#controller
  • filter#isalnum#lower
  • 공유기 설치#BOJ#이분탐색#Python
  • Triangle#Sorting#Codility#Python
more
«   2025/09   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바