국비 2주차 코딩 어린이의 고민입니다.

keais의 이미지

안녕하세요, 국비지원 이제.. 2주 차인 코딩 어린이..코린이 입니다~
웹개발 자바 국비 학원 다니면서 궁금한 부분이 있어서 여쭤봅니다.

제 소개를 잠깐 하면 취미로 유니티C#(게임)을 만들다가
프로그래밍에 관심이 생겨서 자바 웹개발 국비를 다니게 되었습니다.

몇 가지 고민이 있어서 글을 작성합니다! 명쾌한 고견 부탁드려요

1. 가장 큰 고민은 인터넷이 없으면 개발을 아예 못합니다
인터넷(구글)을 안 보고 코딩하는 게 맞는건가? 구현 속도가 너무 느리고 답답합니다.
지금 제 학습 방법이 맞는 건지 제대로 된 방법으로 가고 있는 건지 도와주세요!

예를 들어 적 몬스터 AI 구현한다고 가정했을 때 머릿속으로 간단하게 생각을 해봅니다.
1. 적이 플레이어를 만나면 따라다닌다.
2. 일정 범위에 들어가면 공격한다.
3. 일정 범위로 멀어지면 제자리로 돌아간다.

아. 적 현재 벡터 포지션 값을 알아겠네? 포지션값 함수에 넣어주고, 레이캐스트로 거리를 측정하고
거리가 얼마 이상이면 x, y, z 월드좌표 값을 어떻게 받아오지 아.. 모르겠네.. 검색 -> 모름 -> 남이쓴 소스 발견
-> 이해가 안됨 -> 빈프로젝트 생성해서 적용해봄 -> 적용됨 -> 코드 다시 봄 -> 이해 안됨 -> 아 넘어가자.. -> 다음 것 진행
-> 다른 거 진행하다가 갑자기 이전 작성한 게 이해되기 시작함 -> 소스 코드 다시 봄 -> 이해됨

2. 어찌어찌해서 원하는 기능을 구현은 하고 있습니다. 하다 보니까 이게 구현 설계? 방식이 중요한거 같다고 느껴요.
규칙이 없이 구현에 급급하고, 소스가 엉키고 뒤섞이기 시작합니다.
게임 내에 점점 크기가 커지다보니, 어디서부터 손봐야될지 모르겠어요. 지금은 그냥 다 싱글턴패턴으로 적용해서 쓰고있어요
사실 제가 지금까지 쓰고 있었던것도 싱글턴패턴이라는 것도 이제 알았습니다 그동안 이게 디자인패턴 중 하나라는 걸 모르고 그냥 이렇게 쓰면 된다라고 사용했네요.
유튜브나 깃허브에 있는 코드를 보고 따라치고 이렇게 처음에 배웠거든요 생각해보니까 지금 이게 일반적인 학습 방법은 아니었던거같아요 왜냐하면 마치 아이가 모국어를 배울때 문법을 안배우잖아요.. 저는 그렇게 배웠던거 같아요
문법을 안배우고 소스를 따라치다보니까 자연스럽게 쓰는거 같아요..
한국말을 할때 목적어 조동사 동사 이렇게 따지지 않고 문법을 생각안하는 것처럼 그렇게 개발을 했었던거 같아요
다 규칙이 있고 방식이 있다는 걸 학원 다니면서 제가 알고 있던 거랑 학습한 방식과 괴리감(?)을 느낍니다..
학원에서는,, 선생님께서 내주신 간단한 예제를 못풀기도 하고.. 때로는 이거 좀 어려운 예제라고 알려주시는데 되게 쉽다고도 느끼는 부분이 있어요..;;; 어떤게 맞는건지 헷갈리기도 하고 혼란스러운 상태입니다..
아까 질문으로 돌아가서 디자인 패턴? 아키텍처?라는 설계방식이 중요한거 같은데 이 부분을 좀 특화시키려면 어떤 부분을 배우면 좋을까요?

두서 없이 질문을 해서 죄송합니다~ 개발자 전문가분들께서 넓은 아량으로 올바른 길로 갈 수 있도록 충고 부탁드려요~
다들 곧 추석인데 다들 즐거운 명절 보내세요~!

ehaakdl의 이미지

1
저도 비슷한 문제에 대해서 고민을 했었습니다.
프레임워크 문서만 보고 이해하고 구현하려 했는데 일단 영어가 안되니까 자세한 클래스들에 대한 관계를 이해 못 해서 원하는 대로 구현을 못 하겠더군요.. 그래도 다행히 남에 코드 보고는 구조가 서서히 이해 됐습니다.

웬만하면 저도 남에 소스 보고 복사해 붙이는 건 자존심 상해서 안 했었는데 지금은 먼저 구현된 소스를 보고 빌드시킨 다음에 코드를 보고 구조를 이해하는 것도 방법의 하나라고 생각합니다.

질문자분도 현재 처한 상황의 문제가 뭔지 파악을 해보시고 다시 한번 판단해보시기 바랍니다. 꼭 인터넷을 안 보고할 이유는 없습니다. 저도 베스트는 문서와 해당 케이스에 코드를 보고 이해해서 하면 좋겠지만 좀 부족하다 생각되면 먼저 구현된 코드들을 빌드하고 이해하면 됩니다. 그렇게 시간이 지나지면 익숙해져서 그 전보단 나아진 자신의 모습을 보지 않을까 싶습니다.

2. 설계를 잘하시고 싶으시면 코딩 많이 하시고 컴퓨터 기초 과목들을 잘 이해하셔야 합니다. 많이 해봐야 관록이 붙죠