들어가며 그 동안 완벽한 글을 써야지 하는 마음에 미뤄왔던 SOPT에 관한 이야기를 시작해보고자 한다. 이번 글에서는 28기의 지원부터 합격까지의 이야기를 할 예정이다. 나도 지원하는 순간에 여러 블로그의 후기 글을 찾아봤었고, 또 많은 도움을 얻었기 때문이다. 누군가가 이 글을 통해 도움을 얻는다면 뿌듯할 것 같다. 3번의 도전 끝의 합격 사실 나는 26기, 27기에 지원했었으나 떨어지고 3번의 도전 끝에 28기에 합격했다. 처음에는 많이 부끄러웠고 상심이 컸다. 지금에서야 말하지만 동아리가 밉기도 했다. 근데 객관적으로 생각해보면 분명 내가 부족한 면이 있었기에 떨어진 것이 팩트였다. 정확한 이유는 알 수 없지만 서류의 내용에 진정성이 없었거나, 면접에서의 자기 어필이 부족했거나 또는 동아리에서 원하..
안녕하세요, 태끼입니다. 이번 글은 정리형태로 작성해두어 어투가 조금 딱딱할 수 있습니다.. 이해부탁드려요 🥲 이번 글은 어투도 딱딱하고 줄글 형식이다. 너무 어렵게 생각할 필요가 없는 개념이다. 단순하게 맞서보자. 요약 프로토콜에서 사용되는 제네릭 Placeholder의 느낌이다. Associated Type은 원래 typealias였는데, Swift 2.2부터 Associated Type이란 키워드로 바뀌었다. 설명 위의 두 가지 관점에서 보면 내용은 크게 어렵지 않다. 아래의 예시로 함께 이해해보겠다. 우선 프로젝트에 대해 잠깐 이해해보면, 프로젝트는 현재 MVVM 패턴을 따르고 있다. 다음 프로젝트에서는 비즈니스 로직을 처리하는 ViewModel을 구현해야 한다. 보통 각 ViewControlle..
해당 글에 사용된 예시는 2가지 글에서 가져왔습니다. 출처는 글 마지막에 적어놓았습니다. 참고하셔서 글 읽어주시면 감사하겠습니다 :) 💬 들어가기전에 결론부터 말하고 시작하겠습니다. typealias는 코드를 좀 더 간결하게 가독성있게 작성하기 위해서 사용합니다. 언제 사용하냐구요? 정답은 없습니다. 다만 일반적으로 사용하는 경우는 있죠. 이번 글에서는 그 부분에 대해서 함께 알아보도록 하겠습니다. 🗒 typealias란 typealias란 타입에 붙일 수 있는 별칭, 약칭입니다. typealias (사용할 별명) = (존재하는 타입) ex) typealias Nickname = Int ex) typealias Codable = Decodable & Encodable ex) ... typealias는 새..
열심히 데이터를 받아와서 UI에 뿌려주는 작업 중 도저히 가만히 있을 수 없는 이슈가 발생했습니다. 텍스트 값 안에 html 태그가 포함되어 있어 라벨에 그대로 표현되고 있던 것입니다. 효과가 적용이 되거나 사라지길 원했는데 제거하는 방향 쪽으로 가기로 했어요. 좋은 익스텐션이 있어서 그대로 가져와서 사용해봤는데 깔끔하게 적용이 되었습니다. 익스텐션을 이해하는 시간도 가질 필요가 있을 것 같습니다. 우선은 그냥 사용하는 것으로 하겠습니다~! 추가되는 내용이 있으면 업데이트 하도록 하겠습니다 :) // 텍스트에 포함되어 있는 HTML태그 제거하기 (익스텐션) extension String { // html 태그 제거 + html entity들 디코딩. var htmlEscaped: String { guar..
안녕하세요, 태끼입니다~ 오늘은 Convenience initializer가 무엇인지 알아보겠습니다! 이니셜라이저는 크게 2가지를 살펴볼 수 있습니다. Designated initializer, Covenience initializer 차례대로 지정 이니셜라이저, 편의 이니셜라이저라고 해석해볼 수 있는데, 지정 이니셜라이저는 클래스(구조체)내의 모든 프로퍼티가 초기화될 수 있도록 해주는 이니셜라이저이고, 편의 이니셜라이저는 추가적인 작업을 할 수 있도록 해주는 보조 이니셜라이저입니다. Designated init 의 파라미터 일부를 기본값으로 설정해서 Convenience init 안에서 Designated init 을 호출해서 쓸 수 있습니다. 중요한 포인트는 다음과 같습니다. Convenience i..
안녕하세요, 태끼입니다 :) 요즘에는 한 단계 더 성장하기 위해서 다시 기초부터 차근차근 공부하는 중입니다. 확실히 공부를 하다보니 이전에 아무 생각없이 작성하던 코드나 개념들이 눈에 확 띄더라구요... 알고 사용하는거랑 모르고 사용하는거랑은 역시 엄청난 차이이기 때문에 항상 기초부터 탄탄히 합시다... (근데 기초만 공부하다보면 흥미가 떨어지는건 사실... 그러니까 적절히 요리조리 아시죠...? 😋) frame vs bounds 오늘은 frame과 bounds에 대해 정리할 거예요. 아 근데, 요약버전이니까 자세하지 않아도 이해해주세요... 꼼꼼한 설명버전은 나중에... 우선 다 이해하고 나서 정리를 해보면 frame과 bounds의 차이는 다음 3가지로 정리할 수 있을 것 같습니다. 좌표계에 대한 차..
우리는 옵셔널에 대해 물었을 때, 얼마나 잘 대답할 수 있을까? Summary 옵셔널은 변수에 값이 있을 수도 있고, 없을 수도 있는 상태(nil)를 표현하기 위해 Swift에 도입된 개념입니다. 옵셔널은 Enum 형태로 정의되어 있고, 값의 있고 없음을 각 Case로 가지고 있습니다. 옵셔널로 표현된 값에 접근하는 방법으로는 Forced Unwrapping(강제 언래핑), Optional Binding(옵셔널 바인딩), Nil-Coalescing Operator(Nil병합연산자)가 있습니다. 옵셔널 체이닝을 통해서 옵셔널 바인딩으로 표현된 코드를 간결하게 작성할 수 있습니다. 옵셔널(Optional) 너란 녀석 옵셔널의 의미 자 우리는 근본있는 개발자이기 때문에 Apple 공식 문서를 보도록 하죠. (..
'회고'가 좋은 습관이 될 수 있겠다라는 생각이 들어서 달이 마무리되면 짤막하게 몇 줄 남기려고 한다. 한 달을 열심히 살 수 있는 원동력이 될 수도 있지 않을까! 마지막이 많았던 7월 7월은 정말 마지막이 많았던 달이다. 과 사람들과 진행하던 알고리즘 스터디의 일차적인 마지막 3주간의 프로젝트, 팀빌딩 ~ 데모데이까지 성공적으로 진행된 APP JAM의 마지막 2021년 많은 시간을 쏟았던, IT 벤처 창업 동아리 SOPT의 마지막 언제나 마지막은 되게 아쉽고 많은 생각이 들게 한다. 좋았던 추억도 많이 생각나고, 내가 더 잘할 걸이라는 후회도 남기고 그만큼 나를 더 많이 돌아보게 한다. 마지막이라는 순간 속에서 정말 많은 것을 배우고 느꼈다. 함께해준 모든 사람들에게 감사를 전하고 싶다. 다가오는 8월..