Java재밌당
1k
2022-01-12 13:19:43
14
883

개발 실력을 키우는 법 질문입니다!!


안녕하세요. 최근 수습 기간 중 과제를 계속 수행해나가고 있는 신입 개발자입니다.

다름이 아니라 최근 Netty 활용해서 사내 전문 통신 클라이언트측 코드를 짜고 있는데요.

계속 어려움을 겪다보니 어제 파트장님과 면담도 해서 제가 이런이런부분이 어렵다.. 어떻게 해나가야 되는지 관련해서

여쭈어보았는데, 아직 신입이니까 천천히 풀어나간다는 느낌으로 해라. 뼈부터 만들어야지 살부터 붙일 수는 없지 않느냐 라는 식으로 말씀 해주셨습니다. 

그리고 오늘 아침 과제 진행 중에 한 가지 문제점은 꼭 풀어야 하는 것이 있어 시도 중이었느데

금요일이 코드 리뷰라 이 부분은 무조건 해결해야 나머지도 시도할 수 있는 상황이었습니다.

그래서 파트장님께서 블로그 중에 심플하면서 좀만 고쳐보면 되는 코드 주시더니, 

이 부분 이렇게 바꿔서 하면 될거니까 시도해봐. 라고 해주셨습니다.

그래서 바로 시도에 들어가는데 

저도 머릿속으로는 아 이 코드에서 요렇게 실행이 되면 되겠구나! 라는 해결방안은 보이는데

정작 제 손이 잘 안움직이더군요.. 해결 방안을 확실하게 주셨으면 이젠 제가 해야할 것은

그 방안 대로 코드를 고쳐가며 시도하는건데.. 이제야 풀 수 있겠다는 생각이 확고해졌었는데

제 실력때문에 금요일까지 아무것도 못 고치고 코드리뷰에 들어가는 건 아닐까..

그럼 난 이번주 1주 동안 한 것이 무엇인가?.. 라는 생각이 들더라구요

이 글을 쓸 시간에 시도하는게 맞지만, 혼자서 너무 답답하여서 잠시 시간내서 써봅니다.

해결 방안을 알아도 제 실력이 부족하여 코드를 수정하는게 어렵다니.. 창피하네요.

0
  • 댓글 14

  • 준호
    795
    2022-01-12 13:28:09

    지난번 질문글을 보니 Netty에 대한 학습 후 사용하시는 걸 추천드립니다.


    Netty가 사용하기 편한 TCP 프레임워크지만 별도 스터디없이 그냥 사용할만큼 심플한 프레임워크는 아닙니다.  

  • Java재밌당
    1k
    2022-01-12 13:31:22

    준호


    별도로 스터디할 시간이 없어서요 ㅠ..

    이사님께서 내주신 과제인데, 저번에 인증 구현을 4가지 정도 중에 한가지는 완벽하게 구현이 되어서

    그 부분은 코드리뷰하며 해당 인증에서 세션이 유지되어야 다른 인증들도 할 수 있기에

    그 부분 고치고 있는건데, 너무 어렵네요. 기한도 일단 이번주 금요일에 코드 리뷰 하신다구하셨는데.

    이 문제점을 못고치게 되면 한주동안 아무것도 안한걸로 아시니까.. 결과물이 나와야 했구나라는 생각이 들거같아서요. ㅠ

  • 까꿍
    1k
    2022-01-12 13:35:39

    아래는 흔하게 개발자 유머글에서 볼 수 있는 문장입니다.

    "여보! 마트에서 우유 사오고 계란 있으면 6개 사와"

    그리고, 남편은 우유를 6개들고 집에 옵니다.


    일반 사람이라면 우유 1개와 계란을 6개 사오겠지만, 개발자는 우유를 6개 사온다는 유머죠.

    이 개그를 좀 더 들여다보면 개발자는 일반인과 다르게 생각한다. 그리고, 다르게 생각해야된다는 것을 알 수 있습니다.




    최근 유투브 중에서 개발자 아빠가 자녀에게 종이와 펜을 주면서 빵에 잼을 바르는 방법을 적어보라고 합니다.

    자녀들은 빵에 잼을 바르는 방법에 대해 열심히 적었고 아빠가 작성된 대로 시도했으나 빵에는 잼을 바를 수 없었습니다.

    왜냐면 전제가 다수 빠졌기 때문이죠.


    이 것은 저 또한 많이 느꼈었습니다.

    제가 국비지원을 다닐 때 동기들이 항상 애를 먹던 것은

    머릿속에는 있으나 그것을 어떻게 코드화 할 것인지에 대해 많이 막히더군요.


    저는 이것을 단순히 경험 부족이라고 생각합니다.

    저 역시 가끔 한 번에 그림이 그려지지 않을 땐 "순서도"를 그려봅니다.

    작성자님께서도 이해가 안가신다면 "순서도"를 그리거나 숫자를 적으면서 어떻게 순서를 진행하면 될지 정리하는 시간을 자주 갖는 습관을 기르시면 분명 도움이 되실겁니다.

  • 준호
    795
    2022-01-12 13:39:45 작성 2022-01-12 13:40:45 수정됨

    지난번 올리신 코드는 전문 1번만 주고 받을 수 잇는 코드입니다.


    지난번 질문글에도 코멘트를 달았지만 Netty는 동기로 코드 구현이 거의 불가능하기때문에 비동기로  코드를 짜셔야 말씀하신것처럼 A->B->C->D 방식의 통신 방식이 구현 가능할겁니다. Handler의 channelRead0 안에서 비지니스로직을 짜시고 그때 말씀드린것처럼 프로토콜에 맞춰서 decoder를 필수적으로 구현하셔야 합니다.


    프레임워크를 쓰려고 하시면서 프레임워크를 공부할 시간이 없다고 하시는 건 정말 넌센스네요.


  • Java재밌당
    1k
    2022-01-12 13:41:16

    까꿍 

    아하.. 지금 코드 고치는 부분같은 경우는 제가 생각하기에도 쉬워보이는데

    Netty로 하려면 Handler 부분 코드도 바꾸어야 하고, 메인 코드도 바꾸어야 하니

    이게 어떻게 해야되는지는 이제 머릿속에 알겠는데, 

    코드를 어떻게 고쳐야 잘 유지가 되어서 다른 전문들도 요청, 응답을 받을 수 있을지가 어렵네요.

    이사님께서도 아침에 고객사측에서 해당 서비스 클라이언트측 코드좀 만들어서 테스트 해달라구 하셔서

    이사님은 아침 3시간만에 다 만드시더라구요.. 전 3주 정도 진행중인데..

    당연히 이사님과 저의 실력은 천지차이지만 그래도 저도 인증들중 2개정도는 만들어야 좀 가르침도 받고 그럴 것 같은데..

    아직 1개밖에 제대로 된것두 없고, 이번주만해도 아직 고쳐진 문제점이 없으니.. 혼자 답답할따름이네요..

    순서도 같은 경우는 어떤식으로 하면 될까요? 

    파트장님께서 말씀주신것처럼 해당 해결방안이 제일 맞는 말 같아서 그 방안으로 진행하려 하는데

    코드 고치는 것부터 지금 몇시간째 막혀버렸네요.. 관련 구글링좀 하면서 시도해봐야겠죠?

    순서도도 마땅히 그려질까? 라는 생각이 듭니다.. 고등학교측에서 개발 공부도 별로 안한 상태로 제가 왔기 떄문에

    이런 어려움을 혼자서 겪는 경우는 있을거라 생각하였는데, 생각보다 힘드네요. 제 실력으로 고쳐지게 되면

    기분은 좋을거 같은데 말이죠 ㅠ

  • Java재밌당
    1k
    2022-01-12 13:43:01

    준호 

    그럼 핸들러 측에 먼저 로그인 전문을 보내고 난 뒤에 다른 전문들도 요청 할 수 있게

    세션 유지 관련해서 검색하면서 시도해봐야겠군요.. 감사합니다.

    해당 과제를 하면서 네티라는 프레임워크에 대한 이해도가 부족한 채로 진행을 계속 하다보니

    문제점이 많은 것 같습니다.. 과제하구 별도로..


  • 준호
    795
    2022-01-12 13:53:34

    개발을 진행하려면 사용하려는 기술에 이해도가 있어야 하는데 그 문제를 먼저 해결하지 않으면 해결되지 않을 문제로 보여지네요.


    사내 Netty로 구성된 다른 프로젝트 소스들을 먼저 분석하시는 걸 추천드립니다.


    그리고 Netty는 KeepAlive 옵션을 제공하고 있습니다. 프로토콜 기준으로 N분 이내 통신이 없으면 접속을 종료한다는 별도 정책이 존재하지 않으면 별도로 개발할 필요가 없습니다.

  • Java재밌당
    1k
    2022-01-12 14:00:04

    진행하고 있는 서비스 규격엔 뭐 몇분이내 통신 없으면 접속은 종료가 안되지만

    세션이 유지되고 있는지 체크해야 하는 전문이라

    싹 다 만들어보라고 하신거거든요.. 참 어렵네요.. 금요일에 어떻게 될지 ㅠ

  • 안전라이딩
    2022-01-12 14:16:25 작성 2022-01-12 14:19:00 수정됨

    Java재밌당 님이 과제에서 얻으셔야 하는 것은 문제 해결을 위해 고민한 경험 들인데 이것들 보단 결과물 획득에만 집착하시는 거 같네요... 금요일 리뷰를 하신다고 하셨는데 스스로 충분히 고민하고 문제 해결을 위한 시도가 쌓였다면 리뷰에서 이야기할 것들은 많을 겁니다.

  • 하이열
    1k
    2022-01-12 14:23:18

    제 실력때문에 금요일까지 아무것도 못 고치고 코드리뷰에 들어가는 건 아닐까..

    그럼 난 이번주 1주 동안 한 것이 무엇인가?.. 라는 생각이 들더라구요


    최선을 다하셨다고 생각이 드시나요? 

    예전에 제가 회사의 개발팀장이었을 때, 신입에게 간단한 문제를 내었는데 2주를 못하더라구요;

    그래서 물어봤죠 최선을 다했냐고?...   

    최선을 다하는 자세의 의미를 모른다고 생각이 드는 것 같아요

    모르면 당연하게 모르겠다 도와달라 커피한잔 사들고 가서 잘 모르겠다.. 

    한번 더 알려달라. 바짓가랑이 잡고 늘어지라고 전 가르친것 같네요 

    자신이 받는 월급여는 회사에서 공짜로 주는거 아닙니다..

    모르겠으면 밥사주고 술사주고 커피 사줘서라도 엉겨붙어서 자기가 이해되는 순간까지

    얻어내야 하는 정보와 능력까지 포함되어 있다고 생각하세요..


    제가 신입을 가르켜 줄때의 방법이었고... 제가 해온 방법입니다.. 

    당하시는 분께는 죄송하지만.. 제 목숨이 달렸던 일이엇고.. 그걸 풀어내야만 

    제가 스스로 풀어낼 수 있는 기초가 되었다면 그분께 진심으로 고마워 해야 합니다..


  • abtso
    613
    2022-01-12 14:34:45

    오호 아직 순서도가 쓸 만 하겠군요

  • Java재밌당
    1k
    2022-01-12 14:42:59

    안전라이딩 

    네.. 그래서 지금 제일 큰 문제점인 규격에 적혀져있는 메세지 세션 유지 + 세션 체크 전문 날려서

    유지가 되는지 그걸 먼저 고쳐놔야 나머지들도 가능하거든요.

    그래서 계속 코드 고치면서 시도해보고 있습니다. 해결 방안을 주셔서 이젠 제 몫밖에 안남은 것 같습니다.

    질문도 그동안 어떻게 해야하는지 월요일 리뷰시간에도 들었구요. 이젠 제 머리에 있는 방법을

    손으로 옮기는 일만 남았습니다.

    하이열 

    그래서 어제 너무 모르겠어서 파트장님께 잠시 시간 되시냐.. 커피숍가서 잠시 말씀드릴게 있어서요. 이런식으로

    부탁드려서 갔었습니다. 제가 그 자리에서 지금 하는 과제들을 진행하면서 너무 어려운 점이 많다.

    규격서도 처음이지만, 해결 방안을 듣고도 제가 활용이 안되는 것 같다. 매일매일 배울 의지가 있는 자세지만

    제 현 상황은 실력이 너무 부족한거 같다. 라고 말씀드렸었는데

    당연히 고등학교에서 아직 4개월밖에 안된 신입이고, 학교에서 개발 공부도 별로 안했을텐데 어려운게 맞다.

    하지만 이 길로 먼저 선택한 이상 버티면서 배울 수 밖에 없다. 라는 식으로 말씀주셨었습니다.

    맞는 말이죠. 그래서 저도 제 지식 내에서 계속 시도하고 있습니다. 문제점을 하나도 못고치더라도

    이렇게 이렇게 시도해보았는데 제가 잘못한 부분이 뭐가 있을까요? 라고 금요일에 여쭈어보며 혼나더라도

    얻어가는게 있을테니까요. 그래도 너무 혼자 답답해서 글을 썼습니다.. 조언 감사드립니다 다들.

  • Dive_Drink_Develope
    7k
    2022-01-12 15:29:58

    코드로 나올때까지 주어진 해결방안을 

    데이터를 어떻게 받고 어디에 전달해서 어떻게 하겠다를 계속해서 쪼개서 먼저 한글로 적어보세요

    중요한건 쪼개고쪼개고 쪼개는 겁니다. 내가 그것만 보면 이런건 코드를 이렇게짜야지 하는 생각이 들때까지.

    근데 더이상 어떻게 쪼갤지도 모르고 어떻게 짤지도 모르겠다.

    그러면 그건 내가 모르는 부분인거죠. 검색하거나 선임에게 들고갈 시간입니다.

  • Java재밌당
    1k
    2022-01-12 15:48:14

    드디어 계속계속 시도한 끝에

    로그인 인증하며 보낸 세션 체크해주는

    세션 체크 전문 날릴 때

    채널이 끊어지는 현상이 일어났는데

    지금은 응답코드만 안오고 채널 자체는 유효하네요.

    조금만 고치면 세션 체크 전문에 관한 응답도 받을 수 있을 것 같습니다.

    고작 이거 하나 고쳐졌다고 기분이 좋아지네요..

  • 로그인을 하시면 댓글을 등록할 수 있습니다.