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

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)
[WWDC 15] - Protocol Oriented Programming(POP) {2편 - OOP를 POP로 변경해보기}

📂 프로토콜 중심 프로그래밍(Protocol-Oriented-Programming in 408 Session WWDC 15) 🎯 프로토콜 중심 프로그래밍(이하 POP) {2편 - Start with Protocol} 1편 - 왜 OOP로는 부족한가? 🔨 문제가 있는 상속 관계를 프로토콜을 활용하여 변경해보기 우선 1편에서 언급했던 문제 상황을 다시 한번 살펴보겠습니다. 문제가 되었던 Ordered를 클래스가 아닌 프로토콜로 변경해보겠습니다. 프로토콜로 변한다면 XCode는 에러메세지를 띄웁니다. 프로토콜이기 때문에 메소드를 직접 구현하는 것은 안된다고 말이죠. 여기서 Dave가 한 말을 인용해보겠습니다. Okay, first, we need a protocol, and right away Swift co..

iOS 앱개발/WWDC 2021. 5. 23. 15:04
[WWDC 15] - Protocol Oriented Programming(POP) {1편 - 왜 OOP로는 부족한가?}

📂 프로토콜 중심 프로그래밍(Protocol-Oriented-Programming in 408 Session WWDC 15) 🎯 프로토콜 중심 프로그래밍(이하 POP) {1편 - 왜 OOP(Object Oriented Programming)으로는 부족한가?} 2015년 WWDC의 POP 설명 영상을 통해 POP를 이해해보겠습니다. 양이 너무 많은 관계로 여러 편에 나누어 진행하도록 하겠습니다. WWDC에서는 Crusty(심슨?)라는 아저씨를 등장시켜 장단점을 주고 받는 형식의 발표를 진행합니다! 📂 Classes are Awesome! POP를 설명하기 위해 기존에 사용하던 OOP의 개념에 활용되었던 Class의 장점을 먼저 설명합니다. Encapsulation(캡슐화): 관련 데이터와 동작들을 모아둘 ..

iOS 앱개발/WWDC 2021. 5. 20. 13:44
[스위프트(Swift) 프로그래밍] - Closure를 이용해 저장 프로퍼티 초기화할 때 들었던 의문점들

🛠 Closure를 이용한 저장 프로퍼티 초기화를 구현을 생각해보기 💬 Closure를 이용한 저장 프로퍼티 초기화를 구현 방법 학습과정 중 구현된 클로저를 이용한 저장 프로퍼티의 구조를 보며 한가지 의문이 들었습니다. 의문에 대해 말해보기 전에, 우선 구현된 구조를 한번 살펴보겠습니다. let/var propertyName: Type = { // Logics return returnValue } 위의 추상화된 구조를 예시로 구체화 시켜보겠습니다. var age: Int = { print("나이가 몇살입니까?") return 10 }() 위와 같이 클로저를 통해 프로퍼티를 정의할 수 있습니다. 🙋 연산 프로퍼티와의 차이 위의 예시를 보면 한가지 의문이 생길 수 있습니다. 연산프로퍼티와 모양이 비슷해 보일..

iOS 앱개발/Swift Basic 2021. 5. 18. 12:32
[스위프트(Swift) 프로그래밍] - 왜 Swift의 클래스(Class)에는 멤버와이즈 초기화(Memberwise Init)가 없을까?

🧐 왜 struct만 자동 생성 초기화(Memberwise Init)가 존재하고 class에는 이 편한 기능을 넣어주지 않았을까? struct를 사용하다보면 memberwise init이라는 편리한 기능을 자주 활용하게 됩니다. 그런데 이 편리한 기능을 왜 class는 넣어주지 않아서 항상 init을 생성하게 하는지에 대한 의문이 들었습니다. 저와 비슷한 의문을 가진 분들이 있어서 그분들의 글을 참고해 설명해보겠습니다. 📂 우선 아래의 글을 살펴보겠습니다. The logic behind it could be because a struct is not subclassable, making it obvious that a complete initializer would be required, and as s..

iOS 앱개발/Swift Basic 2021. 5. 18. 12:03
[iOS] - 유닛 테스트(Unit Tests)

🕹 Unit Test(유닛 테스트) 🙋 Unit Test(유닛 테스트)란? TDD라는 말을 많이 사용하지만 지금까지 테스트 다운 테스트를 해본 적이 없었습니다. 하지만 이번 프로젝트를 진행하면서 시작부터 테스트를 고려한 프로그래밍을 하려고 했고, 그에 따라 Xcode의 Unit Test에 대해 학습하게 되었습니다. 여기서 말하는 Unit Test란 무엇일까요? "유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다. 즉, 모든 함수와 메소드에 대한 테스트 케이스(Test case)를 작성하는 절차를 말한다." ref: 위키백과 - 유닛테스트 기존에는 코딩을 하며 각 기능이 잘 동작하는지 확인해보기 위해 완성 후 작동시켜보고, 문제가..

iOS 앱개발/iOS 2021. 5. 12. 16:46
[스위프트(Swift) 프로그래밍] - Escaping Closures(탈출 클로저)

🔐 Escaping Clousures Apple의 iOS Dev Tutorial을 진행하다가 @escaping을 처음 알게 되었습니다. 튜토리얼상에서도 간략하게 개념을 소개해주고 있지만 조금 더 자세히 알아보겠습니다! 🧐 Escaping vs Non-escaping 우선 escaping을 이해하기 위해 escaping과 non-escaping의 차이를 알 필요가 있습니다. 이런 고민을 하는 상황의 대표적인 예시로 클로저가 파라미터로 입력되는 메소드를 생각해보겠습니다. func callback(someFunction: () -> Void) { someFunction() } callback { print ("someFunction이 실행되었습니다."》 } // 실행결과: "someFunction이 실행되었습..

iOS 앱개발/Swift Basic 2021. 5. 11. 14:37
[Programmers] - 불량 사용자 (2019 카카오 개발자 겨울 인턴십) with Python

📎 간략한 문제 정리 입력된 사용자 목록에서 불량 사용자 목록에 등록된 아이디를 제거합니다. 불량 사용자 목록에 있는 아이디는 정확한 아이디가 아니라 *를 사용한 아이디로 *에는 어떠한 문자가 들어가든 다른 문자가 매칭되면 제거합니다. 이렇게 제거 가능한 아이디 조합의 종류를 찾는 문제입니다. 📈 문제 분석 문제가 어렵지 않아 보이지만 보기보다 난이도가 있는 문제입니다. 계속 가능성을 제외하는 좋은 로직을 생각하는 함정에 빠지면 구현에서 문제가 생깁니다. 한번에 모든 문제를 해결하려는 로직을 구현할 수 있다면 이상적이지만 언제나 완전 탐색의 가능성을 배제하면 안됩니다. 🙋‍♂️ 내가 처음 생각한 해결 방법 수학적으로 계산하려고 했습니다. 가능성이 있는 모든 경우를 찾아 교집합 부분을 제거하려고 했는데 이..

알고리즘 학습/프로그래머스 2021. 5. 8. 12:31
[Programmers] - 보석 찾기 (2020 카카오 인턴십) with Python

📎 간략한 문제 정리 전체 배열의 모든 요소를 가진 set이 있을 때, 이 set의 모든 요소를 가진 배열의 부분 배열 중 최소의 길이를 가진 구간을 찾는 문제입니다. 📈 문제 분석 단순히 전체 순회를 하면 속도 이슈가 발생할 수 밖에 없습니다. 범위가 100,000 이므로 O(N^2)이면 바로 속도 이슈가 발생합니다(100번 연산). 아주 단순한 생각으로는 for문을 2차원으로 돌려 i와 j를 정하고, [i:j] 구간에서 모든 요소를 갖는지 검색해보면 되겠지만 이 검색 역시도 cost가 발생하는데다가 검색 자체에서 이미 속도를 넘어서므로 더 효율적인 방법이 필요합니다. 🙋‍♂️ 내가 처음 생각한 해결 방법 저는 슬라이딩 윈도우를 생각했고, 이 슬라이딩 윈도우의 크기를 이분탐색을 통해 찾는 방식을 생각했..

알고리즘 학습/프로그래머스 2021. 5. 5. 11:30
이전 1 ··· 9 10 11 12 13 14 15 ··· 39 다음
이전 다음
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 랜선자르기#이분탐색#BOJ#Python
  • filter#isalnum#lower
  • 병든 나이트#BOJ#탐욕법#Python
  • NumberofDiscIntersections#Codility#Sort#Python
  • 파이썬알고리즘인터뷰#4장
  • 터틀비치#리콘#xbox#controller
  • Swift#Tuples#Range
  • django
  • 리모컨#완전탐색#BOJ#Python
  • Triangle#Sorting#Codility#Python
  • 배열합치기#분할정복#BOJ#Python
  • 순열사이클#BOJ#Python
  • API#lazy#
  • 종이자르기#분할정복#BOJ#Python
  • django#slicing
  • Distinct#Codility#Python
  • 미로 탐색#백준알고리즘#Python
  • 반복수열#백준알고리즘#Python
  • PassingCars#Codility#Python
  • 나무자르기#BOJ#이분탐색#Python
  • 날짜 계산#BOJ#완전탐색#Python
  • 쿼드트리#BOJ#분할정복#Python
  • 공유기 설치#BOJ#이분탐색#Python
  • 백준 알고리즘#BackTracking
  • Brackets#Stacks and Queues#Codility#Python
  • 섬의개수#백준알고리즘#Python
  • 암호코드#dp#BOJ#Python
  • 텀 프로젝트#백준알고리즘#Python
  • 토마토#백준알고리즘#Python
  • N으로 표현#DP#Programmers#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

티스토리툴바