분류 전체보기
Apple 디자인 챌린지 참석 후기 : UX/UI 는 곧 '길 찾기'다!
참석이라는 게 맞을지 모르겠다만 ... 어쨌건 Apple Design Challenge 세션이 열려서 참석했다. 세션의 진행은 Apple Developer Academy에도 강의해주러 오셨던 Apple의 에반젤리스트 김창우 님께서 진행해주셨다. 그때부터 느꼈지만, 말씀을 조곤조곤 논리적으로 잘 하신다는 생각이 들었다. 저 정도의 언변을 갖춰야 Apple에서 활동하는구나 싶었다. 최근에 프로젝트 때문에 이런 저런 앱을 기획하다보니 UI/UX에 관심이 더 생겼던 찰나였는데, 마침 좋은 타이밍에 Apple에서 디자인 챌린지를 열었다. 아직 코로나 이슈로 조심스러운 상황이라고 판단했는지 온라인으로 약 1시간 가량 진행되었다. (오히려 좋아) 오늘 들었던 세션 중 특히 유익했던 내용을 간략하게 정리해보려 한다. ..
[iOS - Swift] XCTest FAQ (XCTest를 공부하다 생긴 궁금증들)
이번 게시물에서는 XCTest를 공부하며 생긴 궁금증들을 정리해보겠습니다. XCTest를 작성하는 방법에 대한 글은 이 다음에 바로 올리도록 하겠습니다. 테스트 코드를 작성하기 전에, 무엇을 테스트할지 파악하는 게 우선이다. 밑의 항목은 일반적으로 고려하는 테스트 대상이다. Core functionality: Model classes and methods and their interactions with the controller The most common UI workflows Boundary conditions Bug fixes Test Code의 종류 Unit Test UI Test Performance Test XCTest란? Unit Test, UI Test, Performance Test를 ..
[iOS - Swift] static func vs func
코드를 보다 보면, class에서 static func을 자주 볼 수 있습니다. 저도 이번에 XCTest Code를 공부하다가 static func 키워드를 자주 봤는데요, 헷갈리는 부분과 static func과 func과의 차이점, static func을 사용했을 때의 이점을 위주로 정리해봤습니다! 개념 Swift에서 static은 타입의 인스턴스가 아닌 타입 자체에서 호출되는 타입 수준 메서드를 정의하는 데 사용됩니다. 즉, static 메서드는 타입의 인스턴스가 아닌 타입과 연관됩니다. 그렇기 때문에 static 메서드는 타입의 인스턴스를 먼저 생성하지 않고도 타입 자체에서 호출할 수 있습니다. 반면, static을 쓰지 않은 일반 메서드는 해당 유형의 인스턴스와 연관됩니다. 해당 유형의 인스턴스에..
프라이머 21기 데모데이 참석 후기
지난 2월 28일 화요일, 과학기술회관 국제회의실에서 프라이머 21기의 데모데이가 열려 참석했습니다. 프라이머는 국내 최초 스타트업 액셀러레이터로, 투자 뿐만 아니라 신생 스타트업에게 창업에 관한 전반적인 교육 또한 제공하는 곳입니다. 데모데이는 창업 후 외부에 공개된 적이 없는 창업팀들이 공식적으로 시장에 소개되는 자리이며 행사 기간 동안 창업팀의 사업모델소개와 제품과 서비스를 직접 확인할 수 있는 자리입니다. (출처 : https://platum.kr/archives/202218) 이번 행사는 코로나 팬데믹 이후 3년만에 개최된 오프라인 행사로 약 천명의 인원이 참석하였습니다. 평소 스타트업에 관심이 많은 편이었고, 프라이머의 노태준 파트너님이 Apple Developer Academy에서 하신 강연..
[CS - 자료구조] 큐 vs 스택 (Queue vs Stack)
Queue 개념 시간 순서상 먼저 들어온 데이터가 먼저 추출되는 선입선출(FIFO, First In First Out) 방식으로 데이터를 저장하는 자료구조 선형 (Linear) 자료구조 Queue Overflow : Queue의 용량보다 데이터를 더 추가하려는 경우 발생 Queue Underflow : Queue가 비었음에도 데이터를 삭제하려는 경우 발생 단순 투 포인터로만 구현하게 되면, push/pop 연산 시 포인터가 증가만 하기 때문에 메모리 공간 낭비 발생 (계속 뒤쪽으로만 추가된다는 의미) 코드 struct Queue { // Property private var array: [Int] private var f: Int private var r: Int private var capacity: ..
오답 노트
1/ 요즘 들어 여러 책, 아티클들을 보면 공통적으로 하는 얘기가 있는데, 바로 '사람'에 관한 얘기임. 공통의 요지는 일 잘하고 싶고 성과 내고 싶으면 다름 아닌 '사람'에 집중하라고 함. 2/ 일도 사람들이 하는 거고, 창업도 사람들이 모여서 하는 거고, 크건 작건 우리가 하는 모든 일은 사람들이∙사람들 속에서∙사람을 위해 하는 것임. 이런 인사이트를 얻음과 동시에, 작년 킨디에서 완전히 반대로 생각하고 행동했던 내 모습이 자꾸 떠올랐음. 3/ 당장 성과 내고 싶고, 누구보다 잘하고 싶은 마음이 컸고, 그래서 더 '일'에만 집중했음. 팀원 간의 관계나 그들의 특징, 개인의 장단점은 전혀 신경쓰지 않았고 (오히려 중요하지 않다고 생각했음) '일'만 잘하고 나만 잘하면 된다고 생각했음. 그때 내 머릿 속..
[프로그래머스 - Swift] 가장 먼 노드
문제 https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 각 depth에 존재하는 노드의 개수를 묻는 문제였다. 그중 가장 멀리 있는 노드의 개수를 묻는 것이었고, BFS의 기본적인 유형 중 하나인 것 같았다. 큰 응용은 없었던 것 같고, 쉽게 BFS를 떠올릴 수 있었다. queue를 활용하여 BFS로 풀었다. 코드에 대한 설명은 코드에 주석으로 달았다! 코드 import Foundation func solution(_ n:Int, _ edg..
[CS - 네트워크] HTTP와 HTTPS
HTTP와 HTTPS HTTP에는 3가지 문제점이 있다. 각각에 대한 보완점이 있는데, HTTPS는 이 3가지 문제점을 모두 보완할 수 있다. HTTP의 3가지 문제점이 어떤 것이며, HTTPS의 개념 및 구조와 어떻게 문제점들을 보완할 수 있는지 알아보자. HTTP의 3가지 문제점 첫번째로, HTTP는 TCP/IP 통신을 하고, 이는 평문 통신이라 도청 가능한 네크워크라는 점이다. TCP/IP 구조의 통신은 경로 상에서 엿볼 수 있고, 암호화가 되지 않았기 때문에 의미를 파악할 수 있다. 또한 패킷을 수집하는 것만으로도 도청 가능성이 있다. 때문에 암호화가 필요하다. 보완 방법으로는, 통신 자체를 암호화된 통신을 사용할 수 있다. SSL(Secure Socket Layer) 또는 TSL(Transpor..