전공/전공 4.2 전체 평점 4.1 / 인서울 국숭세단

자바 스프링, 시큐리티 / (data)jpa

코테 골드 1 ( 올해 안으로 플레 5 될듯)


인 사람인데

그냥 내가 느꼈던 궁금증 적어봄


그리고 아래에 적는 내용은 '신입' 이라는 처지에서 바라보는 생각임

부족할 수 밖에 없습니다. 안 부족하면 지금 일하고 있겠죠

당연히 저도 나중에 시니어 레벨이 되면 '아니지 이녀석아 할 말이 많아지겠죠'

근데 일단 제가 느꼈던 점입니다.



cs공부란 무엇인가?

이거.. 잘 모르겠음 맨날 나오는 구글 입력하면 어떻게 되는지 설명하세요 이런 것들

너무나 당연하고, 그럴 수 밖에 없는 것들인데, cs지식이라고 사람들이 막 그러고

예를 들어 적어도 자기 사이트 하나는 만들려고 가비아에서 도메인은 사봤을거 아냐

아니면 개발자 하고싶은 사람이라면 일단 인생 잡 지식으로 도메인 네임 서버는 알고 시작했을꺼 아냐

나는 이런건 중학생때 알았는데, 그냥 중학교때 다들 컴퓨터 아이피 바꿔서 몰컴하려고 노력해보면서 관련 지식들을 그냥 너무 당연하게 배웠음


컴퓨터 구조 아키텍처도, 공부해서 얻는 내용도 있지만, 나는 컴퓨터 구조 공부하기 전에 컴 조립을 먼저 하고 컴구를 들었음

너무 당연한 내용을 학문이라고 시험보고 하니깐.. 막 학생들 교수님 말씀 받아적고 하는데... 무튼 좀 이상했음

웹서버도 그냥 컴퓨터고..


적어도 컴 조립은 해봤으면 ,어떤식으로 각 부품들이 어떤식으로 모듈러식 접근을 가지며 , 어떤 질서를 가지면서 조립이 되는지는 알게 되거든

어떻게 하면 내 예산으로 최고의 컴퓨터를 맞출까 궁리하는 과정에서, ssd용량과 하드 용량을 나누고, cpu와 gpu 성능을 타협하고

인텔이냐 amd냐 결정하는 과정에서 각 cpu가 어떤 아키텍처를 가지고, 공정이 어떻고, 어떤 작업에 수월하고..등등


그러니깐.. 그냥 성적을 잘 받을 수 밖에 없었던 것 같음

뭐 너가 다닌 학교가 수준이 낮아서 그랬다 라면.. 할말없음


그래서 면접을 좀 가보고 싶은데, 서류부터 떨어지니 도대체 어떤 cs지식을 요구하는 건지 모르겠다.

그니깐..그냥 공부를 한 사람 입장에서는 당연한 건데, 막 cs못하면 떨어져요 이러니깐... 뭐지? 이런생각밖엔 안듬


물론 좀 되게 특화된? 3way핸드쉐이킹 말고 4way handshake나 이런 질문은 나도 좀 생소하긴 하더라

근데 ..이걸 몰라서 개발을 못한다고? 그냥 찾아보면 다 나오는건데... 핸드쉐이킹이 뭔지 이해를 하면 3way인지 4way인지 이해하는건 금방 하는건데... 라는 생각이 들음 그리고 최종 탈락이 4way 몰라서 떨어졌어요 이면...맞나? 내가 너무 순진한건가? 싶기도 하고



개인 프로젝트는 어디까지 해야되는가?

1.1 일단 인증/인가 관련

시큐리티 인증 관련해서도 어지간한 회사에서는 그냥 세션을 쓸 텐데

주변 트랜드 보면 jwt 토큰 인증 구현하고 있고..

그래 뭐 jwt 로 구현할 수도 있다고 치자, 근데 그거 구현 잘못해서 사고나면 어떡함? 그냥 세션이 스프링이 다해줘서 월등히 양도 적고 좋은데

근데 그냥 세션으로만 구현하면, 뭔가 손해보는 느낌? (와 님 세션밖에 못써요?)이 들게 분위기가 흘러 가더라고

그리고 내가 알기론 msa때문에 jwt도 자동으로 묶여져 나오는 것 같은데

Msa이런거 신입한테 요구하는 것도 말이 안되고, 애초에 인증서버면 그냥 jwt옵션이 있는걸로암

복잡하게 필터 안에다가 jwt 개발블로그 찾아서 그거 코드 그대로 붙여넣고... 그걸 꼭 해야되나 싶고

그리고 더 할말이 많은게, jwt라고 올려놓은 코드보면 결국 loadByUserName 을 오버라이드 해서 요청 시에 사용자가 누군지 확인도 하던데

그럴꺼면 그냥 세션으로 하지 라는 생각도 들었음



1.2 아키텍처 관련

근데 어쨋거나 채용은 남들보다 더 잘하는 사람이 뽑히니깐, 구직자 입장에서는 뭐라도 남들보다 잘 해야 될 것 같고

그래서 누가 유행시켰는지 모르겠지만 갑자기 "혝사고널" 아키텍처가 유행하는 것 같음 이게 또 발작버튼인것 같고

근데.. 뭐 나도 취준생이니깐 확실하진 않지만, 그냥 보면 대부분의 서비스들이 새로 만드는 서비스 아니면 다 오래된 코드들이고

일단 아키텍처는 사업 시작할때 딱 헬로우 월드 하는순간 누군가가 삽을 떳을텐데, 그니깐 실무에서 아키텍처를 뭔가 지지고 볶고 할려면

이제 뭔가 시작하는 스타트업이 아닌 이상이야 이게..뭔가 배워서 적용할 수 있을까? 하는 생각이 들더라

그리고 이런 아키텍처는 하나의 서비스에 수 많은 사람들이 붙어서 작업을 할 필요가 있을 때 그런 상황을 나이스하게 해결해 주는 아키텍처 같음

개인 프로젝트로 헥사고널 아키텍처를 혼자서 하면.. 그냥 강 결합 시켜서 써도 될 부분들을 분리해내니깐 시간만 시간대로 들고.. 별로 안 좋은거 같더라고

하면서.. 굳이 그래야되나? 하는 생각도 많이 들었음 좋은 경험이긴 했다.



1.3 도메인 주도 개발 관련

그래서 보통 이녀석과 헥사고널이 같이 묶여 나오는데, 도메인을 따로 만드는 이유는 DB에 강결합 되지 않기위해서 그런 걸로 알고있음

이게 ddd Tdd 헥사고널.. 이런거 사실 10년전에도 나왔던 주제고.. 신입들만 이제 와! 신기하다! 하는 점도 있는 것 같음

무튼 간에 그동안 하드웨어들이 비약적으로 진화해서.. 개인 프로젝트에 이런걸 꼭 해야되나? 하는 생각도 들더라

토이 프로젝트지만 m3맥북프로로 돌리면 통합 테스트가 굉장히 빠른 속도로 돌아가는데

굳이 도메인을 막 만들고 해야되나? 라는 생각이 들더라고.

몇몇 사이트들 백엔드 응답을 까서 보기도 했는데

보면 jpa Audit 할때 로컬 데이트 타임으로 하는데, 응답으로 어떤거는 epochSecond로 주고, 어떤거는 localDateTime으로 주더라고

아마 그냥 강결합 시켜서 audit 그대로 내보내는 것으로 보였음, 왜냐면 도메인이었으면 통일을 했을테니깐

그리고 진짜 맥북이 웹개발 goat인것 같다. ssd를 붙여놔서 빌드 속도부터 그냥 실행 속도가 말도 안되더라

메인컴이 12900k 인데 이걸 그냥 열만 나오는 고물로 만들어 버리더라고.. 그날부터 맥북을 찬양하기 시작했음


1.4 개인 프로젝트 주제 선정 관련

결국 그러면 프로젝트로 승부를 봐야될 부분은 주제인가? 라는 생각이 들더라

근데 그러면 창업하라는 거거든, 내가 예를 들어 사피같은 교육기관에서 어떤 주제 선정해서 개발했다 치자

그래서 이력서에 이렇게 적을 수가 있다고 치자

' 주제로 00을 선정하고 배포해 월 이용자가 00명에 이르는 쾌거를 달성했습니다'


근데.. 생각해보면 월 이용자가 굉장히 많이 나오고 그래서 대용량 트래픽이 발생하면..

그냥 창업을 하면 되는거거든? 그니깐...이게 좀 말이 안되는거임..

근데 창업할 거였으면.. 개발자 하러 안 왔지 근데 주제 잘찾아 내는 팀들이 공모전이나 이런 곳에서 입상하는 것 보면

이게 맞나..뭐지.. 이런 생각이 들었음


근데 또 뭐 주제 그냥 그런걸로 하면 평가받을 때 너무 무난하다고 까이고.. 어느 장단에 춤을 춰야겠는지 모르겠더라


1.5 AWS관련

개인적으로 AWS얘네들 양아치 같음 B2B로 지원 받으면서 AWS매니저 있어서 대화가 되거나, 잘못해서 비용이 발생한 건에 대해서 환불이 가능한 상황이라면 좋은거 같음 큰 기업들은 다 그런 라인이 있는 것 같더라

근데 일반 개인이 AWS를 깊이 알기도 어려울 뿐더러, 내가 뭐 잘못 건드려서 요금폭탄 맞으면 그거 다 메일로 ㅠㅠ 한번만 봐주십쇼 해야되고

정신적인 피해도 상당하고.. 돈도 문제고.. 심지어 집에서 웹서버 돌리는 거에 비해서 너무 비쌈.. 클라우드 타입정도가 그나마 괜찮은거 같음

게다가 뭐 비용 설정해놓고, 해당 비용 넘어가면 자동으로 차단되거나 그런 설정도 없음(메일로 알림은 되는걸로 암) 매번 내가 들어가서 얼마나 나오고 있는지 확인해야되고

만약에 자고 일어났는데 만불 찍혀있으면 뭐 안자고 확인했어야 되는데 확인 안하고 자버린 너가 잘못임 이렇게 되는것도 아니고 뭐 개인프로젝트 하는데 관제 할 필요도 없잖아

뭐... 개인프로젝트 하는데 이렇게 까지 해야되나 싶고, 그렇더라 그래서 나는 오라클 클라우드 개인프로젝트 할때 쓰는중, 적어도 과금될 걱정은 없어

근데 회사에서 AWS 안해봤다고 떨어트린다? 이것도 말이 안되는게 신입한테 AWS 시켰는데 인스턴스 잘못만들어서 요금폭탄 나왔음

그러면 그거 누가 책임져야됨? 신입이 뭐.. "월급 안받겠습니다!!" 해야 되는것도 아니고 이상하잖아..


1.6 코딩 테스트 관련 코테 잘하는 놈이 개발 잘함?

결론부터 말하자면 코딩테스트(적어도 골드 1 정도까지는) 무조껀 좋은거 같아.

내가 제일 못하는게 코딩테스트였는데, 뭔가 노력하는 만큼 나오는 분야가 아닌 것 같다고 느껴서였어.

그리고 나이 먹고 보면, 코딩테스트 문제가 결국 수능에서 요구하는 능력이랑 되게 비슷하거든..

이건 좀 개인적인 얘기긴 한데 나는 수능 수학 사교육을 받은 적이 없어서.. 그 트릭을 깨닫는 데 되게 오래 걸렸어

그걸 깨닫지 못하니깐, 고등학생때는 밥만먹고 수학공부했는데 수학 성적은 그대로더라

무튼 그런 트라우마 때문에 코딩테스트 공부하는게 많이 무서웠음

근데 일단 코딩테스트는 그래도 남들 통과하면 된다는 수준만 갖추면 된다고 했으니깐

백준 골드를 찍엇거든, 근데 잘 모르겠는거야

그래서 리트코드도 한 300문제 풀었고, 프로그래머스 문제도 레벨 3 까지 나온건 다풀었어

그리고 코딩 테스트 강의도 진짜 간절했으니깐 다 사서 들어봤거든

어느순간 깨달으니깐, 갑자기 실력이 늘더라 컴퓨터 식으로 생각하니깐 늘었음

코테를 골드정도 까지 해서 뭔가 깨달으면 도움이 많이 되는것 같더라.

그니깐 나는 대학도 수학으로 간거는 아니라서 빡대가리야, 근데 골드정도 문제를 많이 풀었더니 되는거 같아

혹시나 고민하는 분 있다면 강의 좀더 듣고 문제 많이 풀면 달라질 것 같음

근데 딱 골드정도 까지가 도움이 되는것 같아 플레부터는... 떨어트릴 사람 만들기 시험같음 

이거 왜 많이 푸신 분들이 이런 말 하는지 이제 좀 알겠더라


근데 막.. 어려운 문제는 잘 푸는분들 보면 변수명 이상하고.. 막 이해 안되게 적혀있는 풀이들도 많거든

막 그렇게 까지 암호문을 쓰면서까지 플레티넘 이상 문제들을 풀어야 되는지는 모르겠어

만약 코딩테스트에 플레티넘 문제가 나왔다면 그냥 그 회사가 이상한 회사거나

그냥... 사람들이 너무 많아서 그런거라고 생각함


그냥 딱 내 기준으론 웨이트 트레이닝 같아, 보디빌딩이랑 축구는 별개지만 축구선수들도 웨이트 다 하잖아

그 기준이 골드 정도인거 같음








결론


그냥 잘 모르겠음... 이 업계가 어느정도 수준을 요구하는지 모르겠고

가끔 공고보면 나오는 '대용량 트래픽' 이것도 왜 요구하는지 모르겠으며..

물론 여기 고닉이나 지금 일하시는 분들한테 물어보면 저거는 그냥 낚시고

그냥 그만큼 생각을 해 보았느냐? 이런걸 물어본다곤 하시던데

그러면 그냥 그런 걸 알고있는지 명확하게 필요한걸 고지해 주면 되잖아..

왜 자꾸 구직자들이랑 술래잡기, 또는 숨바꼭질 하는 느낌이 나게 공고가 적혀있고..

좋은 코드를 작성하는건, 내가 알기론 누가 봐도 명확하게 작성하는 것이라고 알고있는데

채용 공고를 술래잡기, 숨바꼭질 하듯이 적어놓으면.. 뭐랄까 좋은 생각이 안듬


근데 뭐 내가 잘 못하는게 있으니깐 취업이 안되겠지 이렇게 생각할 수밖에 없음

왜냐면 안됐으니깐


그래서 요새 드는 생각은 이건데

완전 가불기임 내가 잘했으면 됐겠지. 근데 못했잖아? 그러면 너가 못한거지

어디서 못한건지는? 너가 찾아야함

근데 너가 그동안 했던걸 보면 이것도 문제고 저것도문제고 다문제임

근데 그걸 고치면? 사실은 이게 문제임


뭔가 고쳐서 계속 발전하는 것 같지만.. 그냥 나이만 먹고 그대로인 것 같아서 뭔가 싶다.


무튼 그래도 위에 경험들을 녹여서 내 서비스 하나 만들어 보고있는데 그거 만들러 가볼게 읽어줘서 고마워