야곰아카데미에 대한 회고를 하기 전 이번 한 해
개발자
라는 직업을 가지기 위해 무엇을 했는지 정리해 보았다.
2021년 1월
어떻게 하면 개발자가 될 수 있을지에 관한 정말 많은 유튜브와 글을 보며 나의 생각을 정리하는 시간을 가졌다.
2021년 2월
iOS개발자가 되고싶다는 목표를 세운 후 Swift
, iOS
관련 강의를 듣는 스터디를 만들고 스터디원을 모집했다.
2021년 2-4월
프로그래밍 공부는 정말 너무나 어려웠다. 한국어 강의를 듣는데 이게 영어인지 한국어인지 모르겠는경우가 정말 많았다. 이렇게 시행착오를 겪다보면 결국엔 알게되겠지만 그 시간을 줄이고 더 많은걸 배우고 싶다는 생각이 강하게 들었다.
2021년 5월
iOS와 관련된 여러 부트캠프를 찾아보았다. 당시에 내가 못 찾은 것인지 아님 최근들어 iOS관련 부트캠프가 많이 생긴건진 모르겠지만 그때 당시엔 많은 수의 부트캠프가 있진 않았다. 여러 고민 끝에 야곰아카데미에 지원하였고 사전과제와 면접을 진행한 후 5월 마지막 주 부터 캠프생활을 시작하였다.
2021년 5-11월
야곰 커리어스타터캠프에서 6개월간의 과정을 수료하였다.
(커리어)스타터 캠프
라는 이름이 진솔하게 느껴졌다. 스타터
라니.. 개발자가 되고 싶어하는 차고넘치는 사람들에게 눈 먼 희망을 주며 결제를 유도하는 곳은 적어도 아니겠구나
하는 생각이 들었다. 면접
이 아닌 면담
이라는 단어를 사용했다. 면담시간의 첫 마디도 감히 제가 00님을 평가한다는건 아닙니다
였다. 그 때 이 곳에 지원하길 잘했다는 확신이 들었다.야곰아카데미 후기가 많이 없는 이유
여담이지만 여러 부트캠프 후기를 찾아보았는데 야곰아카데미가 정말 전무하다 싶을 정도로 없었다. (내가 못 찾은 걸수도 있지만) 그 이유를 이제 알 것 같다. 우선 기수가 아직 많이 진행되지 않았고 후기작성은 정말 전적인 캠퍼들의 선택이기 때문이다.
야곰아카데미에서 무엇을 배우는지에는 홈페이지에도 자세히 설명이 나와있으니 내가 어떤 것을 배웠는지 작성해 보려한다.
- 몰입하자. 하지만 매몰되진 말자
테이블뷰
의 delegate
와 dataSource
처럼..ㅜㅜㅋㅋㅋ) 중요한 것은 몰입하되 그 상황들이 나를 무력화 할 수 없도록 하는 것이다.
- 모르겠는건 즉시 공부하자.
(부제 : 적어도 기록은 꼭 해야한다.)
- 코드의 이유를 생각해라.
잘 모르겠지만 이게 맞는 것 같다
라는 이유라도 있어야 한다. 그래야 어떤걸 알고 작성했고 어떤걸 모르고 작성했는지 구분 할 수 있다.
- 깊게 공부해야한다. 정말 깊게
- 절대적인 솔루션은 없다. 그것이 야곰의 조언일지라도
- 휴식은 나에게 주는 선물이 아니라 절대적으로 지켜져야 하는 것이다.
- 생각의 공유는 곧 성장이다.
그래서 이 캠프 듣고 나면 취업할 수 있다는거야 아니라는 거야
감히 나의 지식이나 경험으로는 취업에 대한 기준 제시가 어려우니 야곰아카데미 지원하면서 작성 한 코드와 수료 후 나의 코드를 공유해 보고자 한다.
(캠프 수료 후 각자의 실력은 정말 다양하니 이 코드들로 수료 후 역량을 일반화하진 말아주세요.🙇♀️ )
당시엔 guard
문을 작성하는 법을 몰라 모든 if
문 마다 optional unwrapping을 해주었다.
func receiveUserInput() -> Any {
let input = readLine()
if let inputs = Int(input!), inputs <= 1 {
print("입력값이 잘못되었습니다. 다시 입력해 주세요 :", terminator: " ")
return receiveUserInput()
} else if let inputs = Int(input!), inputs > 1 {
return inputs
}
else if let inputs = input, inputs == "exit" {
return "exit"
} else {
return "wrong"
}
}
guard
도 몰랐던 코린이
가 어느정도 성장했는지 가장 직관적으로 볼 수 있는게 무엇일지 고민하다가 가장 최근에 진행한 프로젝트의 일부분, 리드미, 깃헙을 공유해 보면 좋을 것 같다는 생각이 들었다. 공부해야할 것들은 정말 한참많이 남아있고 내가 지금까지 배운 것들을 모두 완벽하게 알고있는 것은 아니지만 그래도 6개월간의 노력을 공유해 보고자 한다.
final class SomeDataNetworkService<EndPointType: EndPointable>: NetworkService {
enum SomeURLs: String {
case example = "www.-----"
}
private let apiKey = ///
private var task: URLSessionDataTask?
func request(with route: EndPointType,
and session: URLSession,
completionHandler: @escaping (/*DataDecodingModel*/) -> ()) {
do {
let request = try self.buildRequest(from: route)
task = session.dataTask(with: request) { data, response, error in
if error != nil {
return
}
guard let data = data else {
print("NoData")
return
}
do {
let result = try Parser()
.decode(data,
to: /*DataDecodingModel*/.self)
completionHandler(result)
} catch {
print(error)
}
}
self.task?.resume()
} catch {
print(error)
}
}
func cancel() {
self.task?.cancel()
}
}
extension SomeDataNetworkService {
private func buildRequest(from route: EndPointType) throws -> URLRequest {
guard let url = URL(string: SomeURLs.example.rawValue) else {
throw NetworkError.invalidURL
}
var request = URLRequest(url: url)
request.setValue(apiKey, forHTTPHeaderField: "Authorization")
insert(queryItems: route.urlElements, to: &request)
return request
}
private func insert(queryItems: GasStationURLQueryElements?,
to urlRequest: inout URLRequest) {
guard let queryItems = queryItems,
let url = urlRequest.url,
var urlComponents = URLComponents(
url: url,
resolvingAgainstBaseURL: false) else {
print("\(#function), Query Items Insertion Error")
return
}
let convertedQueryItems = makeQueryDictionary(from: queryItems)
urlComponents.queryItems = [URLQueryItem]()
for (key, value) in convertedQueryItems {
let queryItem = URLQueryItem(name: key, value: "\(value)")
urlComponents.queryItems?.append(queryItem)
}
urlRequest.url = urlComponents.url
}
private func makeQueryDictionary(from urlQueryItems:
SomeURLQueryElements) -> [String: Any] {
return /* Dicationary타입의 쿼리구성 요소 리턴 */
}
}
무조건 할 것 같다. 다만 사전에 코드 스타터 캠프를 하거나 입문을 할 수 있는정도의 실력을 쌓은 후 지원할 것 같다. 프로젝트의 퀄리티나 배우는 양이 프로그래밍을 접한지 얼마 되지 않은 사람에겐 버겁기도하고 캠프의 전 과정을 스폰지처럼 쏙쏙 빨아들이기 위해선 어느정도의 기본이 필요하지 않을까 하는 생각이 든다.
정말 좋은 사람들을 캠프에서 만났고 6개월간 같이 울고 웃으며 개발자라는 목표를 위해 노력했던 소중한 시간들이었다. 많은 사람들이 야곰아카데미에서 학습의 재미를 느끼고 개발에 몰입할 수 있는 기회를 가졌으면 좋겠다.
'나는 비 전공자니까 못 하는 게 당연해' 라는 핑계를 댈 수 없게 만드는 고수 타코캣...❤️
6개월 동안 고생 많으셨습니다.
그리고 타코캣과 함께 3기 캠퍼로 활동할 수 있어서 너무 즐거웠고 늘 감사합니다.
싸랑해요 타코캣~~~🥰❤️