[Swift] Swift 빌드 과정
·
Swift
오늘은 Swift 빌드 과정에 대해 알아볼 생각이다. Xcode를 사용하면 빌드할 때 그냥 습관성으로 cmd + B 를 누르곤 했는데, 이 Build를 하면 어떤 과정으로 프로그램이 실행되는 지에 대한 내용이다.Swift 빌드 과정을 알아보기 전 일단 전반적인(?) 프로그래밍 언어의 Build Process에 대해 알아보자. (내가 잘 모르니까 ~)Build ProcessBuild Process가 뭘까?우리가 코드를 작성하면 그 코드를 실행시킬 수 있는 실행파일이 필요하다. (그냥 바로 소스코드가 실행 ! 되는 것이 아니다..)우리가 작성한 소스코드를 실행시킬 수 있는 파일로 만드는 과정을 Build라고 한다.이 Build process는 아래 표와 같이 크게 3가지 타입으로 나눌 수 있다.TypePro..
[회고] boostcamp 멤버쉽 3주차 회고
·
회고
벌써 3주가 끝났다니.. 챌린지를 시작한 이후부터는 시간이 정말정말 빠르게 흘러가는 것 같다. 뭐.. 그만큼 시간을 알차게 사용하고 있다는 것이겠지?라고 생각해본다.이번 주는 뭔가 구현을 하면서 끊임없이 고민해볼 거리들이 많았던 것 같아서 따로 학습정리 시간을 갖지 않았음에도 많이 성장한 것 같다는 느낌을 받았던 것 같다. 이 전까지는 이론적으로 내가 모르는 것들을 내 언어로 재구조화 하는 시간이 필요한 미션들이 많았다면 이번주는 내가 직접 객체간의 구조를 어떻게 잡고 가야할지, 설계를 어떻게 해야할지 등을 주로 생각해야하는 미션이었던 것 같았다. 그래서인가 평일에 학습정리는 하지 못했지만 딱히 후회(?) 아쉬웠던 점이 없었던 것 같다 ! 매일매일이 리팩토링의 연속 😇 ~ 아니 근데 리팩토링이랑 구현이..
[Swift] Value Type과 Reference Type
·
Swift
이 글이 조금.. 이것저것 많이 들어있어서 제목을 정하는데 조금 애를 먹었다.솔직히 저 제목도 맞는 건지는 모르겠지만 일단 ! Value Type과 Reference Type에 대해 알아볼 것이다.(정확히는 sruct와 class가 메모리 상에 어떻게 저장되는지를 알아보다가 좀 범위가 넓어진..)메모리 구조이 뒤에 메모리에 대한 이야기를 좀 많이 할 예정이기 때문에 간단하게 Swift의 메모리 구조에 대해 알아보자.Text 영역기계어로 변경된 코드(실행 가능한 코드)가 저장되는 곳프로그램이 실행될 때 메모리에 로드되며 종료 시 메모리에서 제거Data 영역전역 변수와 정적 변수(static variables), 상수가 저장되는 곳Code 영역과 같이 프로그램이 실행될 때 메모리에 로드되며 종료 시 메모리에..
[회고] boostcamp 멤버쉽 2주차 회고
·
회고
껄껄.. 뭐 했다고 벌써 2주차가 끝나고 주말의 반도 지나가버렸다..🫠 금요일은 뭔가 글 쓸게 너무 많아서 그런지 항상 블로그에 쓰는 개인 회고도 써야지 ! 다짐을 해도 잘 지켜지지 않는 것 같다.. 하루에 쓸 수 있는 글의 총량이 정해져 있는 기분..무튼 ! 금요일에 못쓰고 오늘도 학습정리 하나만 했는데 하루가 끝나버려서 자정이 넘어가는 시간에 써보는 회고글 ~이번주는 정말. 아쉬움이 많이 남는 한 주였다.. 개인적으로 너무 많이 풀어졌던 한 주라는 생각이 들었다. 주중에 약속도 하루 잡아놔서 더더욱... 그래서인지 금요일 주간학습피드백과 개인 회고를 작성하면서 정말 부정적이 얘기들을 많이 하게 되었던 것 같다. 이번주는 잘 한 점이 딱히 없는 것 같고 그냥 문제점 투성이다.. 흑흑... 첫 번째로 ..
[iOS] Container view controller
·
iOS
오늘은 Container view controller에 대해 알아볼 예정이다. 주인장은 이 글에 대해 정리하기 전까진 Container view controller가 UIViewController마냥 따로 만들어져있는 클래스 그런건 줄 알았다..ㅎ (나같은 사람 분명 있을거야 ^_^)시작해보자 ~Container view controller 란?Container view controller는 다른 view controller들을 관리하는 view controller의 종류 중 하나이다.자기 자신의 view를 가지고있는 content view controller와는 다르게 container view controller는 보통 자신의 뷰를 가지고 있지않다. 그럼 container view controller..
[회고] boostcamp 멤버쉽 1주차 회고
·
회고
챌린지 끝나자마자 일본 여행 이슈와 정신없는 멤버쉽 활동 덕분에(?) 이제서야 ! 멤버쉽 결과를 알린다 ㅎㅎ이미 제목에서 스포가 되었지만.. 네부캠 챌린지 수료증도 받고멤버쉽 입과도 성공적으로 했다 ✌️자랑은 다했으니 회고를 해보자.챌린지에 이어 멤버쉽도 KPT 회고 방법을 써볼 생각이다 !약간 첫 주를 보내면서 느낀점은 챌린지 때 첫 날처럼, 일단은 우리에게 멤버쉽에 적응할 시간을 주는 느낌..?이 강했던 것 같다. 전반적으로 미션의 난이도가 높지 않았던 만큼 남는 시간에 멤버쉽의 플로우에 적응할 수 있는 시간이 주어진 느낌이었다. 멤버쉽 첫 주를 보내면서 챌린지와 많이 바뀐 점이라면 학습 주기가 길어졌다는 것이다. 챌린지 때에는 하루라는 굉장히 짧은 학습 스프린트 기간을 가지고 진행했었는데 멤버쉽은 ..
[회고] boostcamp 챌린지 4주차 회고
·
회고
드.디.어 챌린지 4주가 막이 내렸다 ~~~~ 👏 👏 👏 👏정말.. 길고 긴 4주였지.. 내 생에 이만큼 알찬 4주가 있었을까..? (있긴했음) 4주 차 마무리 회고를 금요일에 바로 쓰려고 했는데 긴장이 풀려서 그랬는지 9신가..? 잠에 들어버려 회고를 쓰지 못했다.. 하루 늦은 토요일! 오늘 마지막 회고를 작성해보려고 한다!먼저 지난 한 달을 돌이켜보기 전 이번 한 주를 먼저 돌이켜보려한다.이번 주는 설계를 열심히 해보자는 지난 3주간의 끊임없는 피드백을 반영하여 드.디.어 설계에 시간을 많이 쏟아부은 기간이었다. 하기 전에는 설계가 너무 막연하고 너무 어렵다는 생각이 컸는데 저번주의 피드백을 생각하여 일단 마구잡이로 빈 종이에 써보는 것과 머릿속의 내용들을 구체화시키기부터 데이터 흐름 및 객체..
[CS - iOS] 동시성 프로그래밍 (feat. GCD, OperationQueue)
·
CS
Swift에서 동시성 프로그래밍하면 크게 GCD(Grand Central Dispatch)와 OperationQueue 두 가지로 나눌 수 있다.두 가지 모두 가볍게..(낱낱이 파헤쳐볼라 그랬는데 그건 양이 너무 많아서 각각 따로 정리해야할듯..ㅎ) 파헤쳐보자.GCD(Grand Central Dispatch)GCD는 스레드 프로그래밍을 위해 Apple에서 제공하는 하위 레벨 C-based API이다. iOS 프로그래밍을 하면서 동시성을 처리하기 위해 가장 널리 사용된다.GCD는 기본적으로 작업들(tasks)을 Queue에 배치하고 이를 비동기적으로 실행시킨다.GCD의 Queue 크게 Main Queue와 Global Queue, Custom Queue 세 개로 나뉜다.Main Queue메인 스레드에서 처..