스위프트를 첫 개발 언어로 시작하려는 사람들에게 (멍소리 주의)

공부하기 싫어서 쓰는 글.

한번 더 생각하셨습니까?

REAL 첫 개발 언어로 Swift를 시작하려는 사람입니까?

Yes -> 읽는 것을 추천드립니다 No -> 마음대로 하세용

애플 OS 앱 개발을 하려고 하는 사람입니까?

Yes -> 나가셔야 해요 (스위프트 하지 말라고 하는 글임) No -> 마음대로 하세용

개발이 궁금해서 시작하려는 사람입니까? 그런데 마침 맥북을 가지고 있고 아이폰 유저인데다가 앱 개발에 흥미가 생겼고 근데 뭐 딱히 앱 개발이어야 하는 건 아닌?

Yes -> 강추(제 과거와 비슷함) No -> 마음대로 하세용

일단 멈춰봐요..

왜 스위프트를 첫 언어로 시작하셨나요?

저는 C를 첫 언어로, JS 찍먹, Python 찍먹, TS 찍먹, Swift 찍먹하다가 정착하게 되었습니다.

C 언어를 첫 언어로 배우길 잘 했다고 생각하는 사람으로서(이유: 근본이라서) 스위프트를 첫 언어로 배우는걸 추천하진 않습니다.

왜요?

  1. 폐쇄적이에요.
  2. 어차피 다시 근본으로 돌아와야 합니다.

폐쇄적이에요.

제가 찍먹 장인이라 진짜 별 언어와 프레임워크를 다 찍어먹어봤습니다.

위에 써 놓은 찍먹 언어 뿐만 아니라, Java, C++은 알고리즘 문제 풀 때 스위프트보다 먼저 찾아보는 언어고요(읽기 전용), Ruby, Go 찍어먹어보고, React Native, Flutter, NodeJS 찍어먹어봤습니다.

찍어먹어보면서 느낀건, 문어발처럼 넓게 퍼져 있는 언어가 있고 그렇지 않은 언어가 있다는 거였습니다.

스위프트는 완전 폐쇄적이에요. 그걸 모르고 시작한 건 아닌데, 생각보다 더 폐쇄적이에요.

자바스크립트는 완전 문어발 언어라고 느꼈어요. 웹 프론트, 백, 앱 개발까지 하나의 언어만 알아두고 열정만 있으면 풀스택 뚝딱 할 수 있을 것 같아요. (물론 풀스택 아닌 분들이 열정 없다는 게 아닙니다. 제 성격상 이것저것 하길 좋아해서 말한거예요.) 이렇게 활용도 높고 오픈된 언어를 첫 언어로 시작하는게 더 좋은 것 같습니다.

스위프트도 프레임워크 쓰면 서버도 돌리고..!!으이? DB도 있고…!!으이ㅣ??!?! 네이티브 앱이고..1!?!?으이?!!?!?

라는 생각으로 저도 시작했는데요, 그냥 애플 생태계 네이티브 앱 할거 아니면 딱히 그런 생각은 도움되지 않는 것 같아요..ㅎㅎ (제가 느낌)

그나마 저도 다른 언어에 비해 깊게 아는게 스위프트라 스위프트로 서버 돌려보려고 하고, 웹 크롤링도 해보려 하고 여러 API도 라이브러리에 종속되지 않고 써보려고 했는데 정보량이 한정돼있어요.

어차피 다시 근본으로 돌아와야 합니다.

취미로 할 거 아니면 프로세스는 뭐고 스레드는 뭐고… 클래스는 뭐고 프로토콜은 뭐고… 외않되의 늪에서 계속 헤엄칠 겁니다.

슬라임으로 만든 성이에요. 모래성보다 더해요. 모래성은 외부 충격이 있어야 없어지잖아요? 슬라임은 그냥 중력만 있으면 알아서 바닥으로 회귀합니다,,,

어쩌다보니 저는 C언어 찬양론자가 됐는데요, 물론 이 언어… 아직도 저랑 안 친합니다. 너무 어려워요. 근데 왜 어렵겠나?를 생각해보면 인간보다 컴퓨터랑 그나마 더 가까워서거든요. 그래서 찬양합니다. 그나마 공학적으로 가장 학습하기가 좋은 언어같아서요.

강형욱 훈련사님이 저한테 강아지의 시그널들을 알려주고 강아지를 보면 그나마 알겠지만, 제가 직접 강아지 시그널을 배워서 따라하려면 참 힘들거예요. 그치만 제가 직접 배우면 간접적으로 보고 들은 것보다 더 이해가 잘 되고, 실제 상황에서 활용하기도 좋을거예요. (아닐수도 있음)

계속 똑같은 말 반복하고 있는데 스위프트로 시작해서 조금 더 공학적으로 들어가려고 하면 이해하기가 너무 어렵습니다. 나는 당연하게 받아들였던 것들이 사실은 스위프트가 뒤에서 몰래 C 언어로 처리해주고 있었고.. 그게 또 몰래 컴퓨터가 처리해주고 있었고… 기타 등등 ㅇ근본으로 들어가기 시작하면 굳어진 사고를 깨기가 좀 어렵더라구요.

야 머 그렇게 진지해;; 그냥 코드 치고 쓸 줄만 알면 됐지~~?!!

라고 저도 생각했는데요, 더 많이 활용하려고 하고, 더 다양하게 쓰려고 하니까 그게 아니더라구요.

근데 저도 잘 모름ㅋ

근데 사실 저도 잘 모릅니다.

아직 실무를 하지도 않았기 때문에… 그렇지만 이제 실무를 하기 위해 밟아야 하는 스텝들(코테, 과제, 면접) 준비를 하면서 느꼈고, 개인적으로 서버 돌려보고 API 써보고 하고 싶은게 너무 많은데 그걸 충족하기엔 스위프트는 너무나도 폐쇄적인 언어라 공부도 안 되는데 스위프트 까글 한번 써 봤습니다.

얕은 수준에서 까는거라 한 3년, 5년, 10년 뒤에 보면 웃음이 나올 글일지 모르겠지만 어쨌든 지금으로선 그렇습니다. 그렇다고 제가 스위프트를 안 사랑하냐고요? 사랑합니다^^ 저는 죽을 때까지 애플 기기 쓸걸요? 어쩔티비긴 한데 암튼..

그리고 저는 지금 당장 할 줄 아는게 스위프트밖에 없어서 이거로 첫끼 벌어먹을 예정이구요. 근데 제가 과거로 돌아간다면 조금 더 다양한 분야의 프로그래밍을 해볼 수 있는 언어를 했다면 어땠을까, 하는 생각이 들어 써봤습니다. 약간 엄복동 된 것 같네요. 망한 글,,,,

망했지만 이거 쓴다고 낭비한 30분이 아까우니까 그냥 올립니다. 제가 원하는건 제 블로그 댓글창에서 시니어, 주니어 분들이 토론회 여는건데 그럴 일은 없을테니 마음껏 깃허브 데이터베이스랑 서버 낭비해보려고요. 어차피 글이라 낭비도 안될걸요?ㅎ

결론

개발 첫 언어로 스위프트 비추. 폐쇄적(정보 적고 활용도 한계있음)이고, 컴퓨터공학적 근본을 배우기엔 너무 인간 친화적인 언어다.

근데 애플 OS 앱 만들거면 당연히 무적권 고. 저도 파워고중임ㅎㅎㅋㅋ

댓글남기기