웡뿔
123
2018-12-20 09:09:15
14
2239

전 스프링이 왜이렇게 어려울까요..


독학으로 포트폴리오겸 연습용 웹사이트를 만들고 있는데요.

자바스크립트 java css 등등 다른 필요한 개념들은 강의한번듣고 구글링하면 아하 이해가 되고 어느정도 써먹을수있는데 스프링만은 왜이렇게 응용이안될까요.
디렉토리 구조부터해서 xml을 적용하는것, 각종 어노테이션, 데이터 전달방식, 그리고 mybatis도 다른 소스마다 비슷한데 다른 방식이여서 응용이 안되네요.
유튜브 스프링 강의도 2번정도 들었는데 강의에 벗어난 내용은 응용이 잘 안돼서 항상 오류뜨고 오류하나 고치려고 2~3일이상 걸리고..
각각 개념들은 알겠는데 서로 연결이안돼서 머릿속에서 뒤죽박죽한 느낌입니다.. 
이제는 코딩하는게 너무 스트레스네요
제가 너무 멍청하다고 느껴질 지경입니다
조언이나 참고할만한 글좀 부탁해요

 
2
1
  • 댓글 14

  • 아스키
    9k
    2018-12-20 09:16:01

    프레임워크를 한번에 이해하는 분은 드물어요..

    반복으로 코딩해보고 에러도 잡아보고 하면서 이해를 해가세요..

    결국은 연습밖에 없습니다.

    0
  • 애리밍
    3k
    2018-12-20 09:32:04
    스프링 쉽게 생각하시는 분들이 많은데 개념적으로 이해하려 한다면 어려운 프레임워크 맞습니다. 정상이에요 ㅎㅎ
    0
  • fender
    13k
    2018-12-20 09:35:28

    혹시 개념보다 사용법 중심으로 공부하지 않으셨나요? 특히 스프링 같은 경우 실무에 많이 쓰다보니 코어는 대충 건너 뛰고 들입다 MVC 모듈 따라하기 같은 것 중심으로 설명하는 학원이나 강의 자료가 너무 많은 것 같습니다.

    특히 DI에 대한 내용은 그걸 어떻게 XML 등으로 구성하는지보다는 애초에 왜 그렇게 하는 것이 좋은지에 대해 완전하게 이해하고 넘어가야 다른 부분도 쉽게 이해할 수 있습니다.

    1
  • ercnam
    1k
    2018-12-20 09:36:33 작성 2018-12-20 09:36:55 수정됨

    IDE (STS라던가..) 에서 스프링 프로젝트로 기본 틀 다 짜진걸 하나 던져주고 그 안에 채워넣는 식으로만 개발하면야 스프링 쉬워보이죠...ㅎㅎ

    그 구조를 제로베이스부터 하라고 하면 (..굳이 할필욘 없어보이지만) 겁나 어려울듯


    저도 막 에러나면 대체 어딜 건드려야 하는거지 하면서 막 헤매면서 고치고 그럽니다...ㅠㅠ

    0
  • 호어호우
    85
    2018-12-20 10:05:10

    적응하시면 쉬울거에요.

    0
  • 만년코더
    208
    2018-12-20 10:25:19

    사실 저도 부끄럽게도 제로베이스에서 이해하고 쓰고 있지 않습니다. 다만 하시다보면 대충 흐름이란게 보이실거에요. 파이팅

    0
  • fender
    13k
    2018-12-20 10:34:39

    참고로 '제로베이스'에서 해봐야 한다는게 문서나 예제를 보지않고 XML 파일 등을 처음부터 다 구성할 줄 알아야 된다는 의미라면 전 크게 동의하지 않습니다. 그건 암기력이 필요한 부분이지 구조를 이해하는데 도움이 되는 내용이 아닙니다.

    스프링 뿐 아니라 모든 소프트웨어 관련 기술을 익히는데 있어 중요한 것은 핵심 개념을 완전히 이해하는 것, 즉 그것이 무엇이고 왜 필요한지를 납득하는 것입니다.

    일단 그게 가능하면 구체적으로 XML을 어떻게 사용해야하는 지 같은 문제는 모두 지엽적인 것이라서 전혀 어렵지 않습니다.

    1
  • 돈까스
    2k
    2018-12-20 11:27:38 작성 2018-12-20 11:38:12 수정됨

    항상 오류뜨고 오류하나 고치려고 2~3일이상 걸리고..

    이 부분에 대해서 시간을 줄이시려면 자바 자체에 대한 이해도를 높이시는 것이 먼저 필요할 것 같은데요.

    디버그 모드로 실행해서 로그 메시지랑 스택트레이스 등을 분석하셔야 하는데,

    익셉션 개념, 상속, 인터페이스, 메소드 호출에 대한 개념, jar 등에 대한 것들에 대한 경험이나 이해도가 부족해서 오래걸리시는 것 같습니다.

    본인의 프로젝트에 대해서 IDE에서 세팅을 잘 해놓으시면 스프링 소스 코드도 쉽게 탐색해서 볼 수 있거든요.

    그렇게 해 놓으시고 디버깅을 하시면 도움이 될 것입니다.


    디렉토리 구조부터해서 xml을 적용하는것, 각종 어노테이션, 데이터 전달방식, 그리고 mybatis도 다른 소스마다 비슷한데 다른 방식이여서 응용이 안되네요.

    이 부분에 대한 의견인데요.

    자바의 기본적인 기능에 관련된 부분, 특정 라이브러리에 대한 부분, 스프링 코어에 대한 부분을 나눠서 보지 않고 모두 한번에 섞어서 보고 계시지 않나 싶습니다.

    MyBatis와 같은 것은 사실 스프링과 독립적인 프로젝트 이거든요.

    MyBatis 자체를 알고, 스프링에서 오프젝트를 생성해서 주입하는 방식을 알면, 그걸 어떻게 섞어서 쓰는지는 쓰는 사람 마음이거든요.

    그런 부분들을 분리해서 보셔야 되는데, 한번에 보려고 하셔서 더 혼란스럽게 느끼시는 것 같습니다.


    디렉토리 구조 같은 부분 무엇을 말씀하시는지 구체적인 표현을 안하셨지만,

    짐작하기에는 이건 스프링보다는 메이븐이나 IDE에서 세팅하는 부분과 관련이 있는 부분 같습니다.

    그걸 스프링으로 묶어서 보려고 하시니까 힘든 것 같습니다.


    컴퓨터공학의 원론적인 이야기를 하자면, "divide and conquer" 방식으로 접근하세요.

    해결해야 하는 문제들을 분리해서 나눠서 하나씩 보시는 것이 좋습니다.

    - 개념적인 이해가 부족한 것인지? 문법이 어려운 것인지? 와 같은 식으로도 분리해서 고민해 보시고,

    - Spring, Mybatis, Java, 개발환경 등의 영역별로도 문제를 분리해서 보시고,


    뭐 결론적으로 별다른 묘수는 없는 것 같습니다. 퍼즐 한판을 맞춘다고 생각하시고,

    일단 쉬운 가장자리부터 맞춰놓으시고 (자바 기본, IDE 세팅, 공식 문서/예제 코드 학습 등),

    퍼즐 색깔별로 분류해 놓으시고(문제들의 영역을 분리),

    하나씩 끼워보면서 그게 맞는지 확인하세요.(코딩/테스트/디버깅)

    퍼즐은 처음에는 뭘할지 난감한데 맞추다 보면 속도가 빨라집니다.


    0
  • basscraft
    2k
    2018-12-20 12:24:25

    스프링뿐만 아니라 모든 프레임워크는 기본 개념을 잘 알지 못하면 정말 어렵습니다.


    서블릿 -> JSP -> 독자적인 Java MVC의 동작 코드를 구현해 보시고 프레임워크를 접하시면 조금 더 이해가 수월 하실 수 있을 것 같아요.

    물론 내부 코어까지 이해하지 못해서 잘 세팅된 환경에서 잘 돌아가는 코드를 복사해서 필요한 부분만 바꿔서 구현하는 것은 몇번만 해보면 금방 적응 합니다.

    하지만 새로운 모듈을 추가하거나... 생각지 않은 애러가 난다거나... 이런 것을들 해결하는건 매우 어렵습니다.


    제가 예전에 COBOL, C 만 하다가 MS Windows와 함께 4GL 들이 나오고

    Windows 프로그래밍을 이해하는데 너무 어려웠습니다.

    기존에 절차식 프로그래밍에 익숙해져 안주하는 동안 짧은 시간에 세상은 너무 많이 바뀐것이죠

    OOP의 개념도 윈도우의 이벤트 드라이븐 방식의 개발을 도저히 이해가 안가더라구요

    Visual C++ 실행해서 새 프로잭트를 생성하면 뭐가 뚝딱뚝딱 해서 위에 메뉴도 있고 툴바도 있고 그런 빈 화면이 딱 나오는 프로그램이 생성되는데 실행하면 신기하게 프로그램이 실행되는 것입니다.

    처음에 뭐 별거 있겠어? main 함수만 찾으면 거기다 막 로직을 구현하면 되겠지... 싶었는데 전혀 이해가 안가더라구요.

    정말 고생했습니다.


    스프링 역시 마찬가지 같습니다. Eclipse 같은 IDE 통해서 클릭 몇번 하면 실행되는 소스가 자동으로 생성되고

    브라우져로 열오보면 hello world 딱 나오는데 내부를 모르면 어디다 소스를 추가 해야 할 지 감이 오지 않습니다.


    시간이 되신다면 앞서 말씀드린 대로 Servlet, JSP 부터 공부 하시고 Java Servlet + JSP 로 구성된 MVC 기본 형태를 구현해 보시고 거기에 살을 붙혀가면서 한스텝씩 나가 신다면 스프링 코어단 까지는 시간이 걸리겠지만 기본 구조는 금방 이해 하실 껍니다.


    개인적으로 이런 커리큐럼으로 블로그에 글을 쓰고 있었는데...

    요즘 시간이 없어서(라고 쓰고 게을러서) 몇달째 손을 놓고 있네요


    조만간 재개 하려고 노력 중입니다 도움 되시길 바라며 URL 남겨 볼께요


    [서블릿 개발하기] #1 개발환경 구축

    [서블릿 개발하기] #2 프로잭트 생성

    [서블릿 개발하기] #3 첫번째 JSP 파일 만들기

    [서블릿 개발하기] #4 첫번째 서블릿 만들기


    조만간 서블릿 + MVC 형태로 만드는 것을 추가 하고

    기본 형태의 스프링으로 진화 하는 단계를 계속 연재 해보려고 합니다.


    0
  • 수평선
    1k
    2018-12-20 12:29:28

    스프링 사실 정이 안가는 프레임웍같아요..

    이건 지극히 주관적인 의견입니다. ㅋㅋ

    0
  • pooq
    2k
    2018-12-20 12:56:33

    저같은경우, 스프링 관련 책 한권 사서, 그 책에 있는 예제 소스를 30번~40번정도 따라해보니까 대략적인 흐름은 감이 잡히더군요.

    0
  • 멍태희
    512
    2018-12-20 13:41:18

    나도 첨엔 스프링이 어려웠어요

    자바를 공부하는 것보다 어려웠어요


    책으로 스프링을 첨부터 차근차근 안해도 되요.

    스프링을 책 순서대로 공부안해도 되요

    천편일률적으로 4장이나 5장쯤 AOP 를 끼워넣어두는데 이거 그냥 일단 넘어가도 되요


    지금 힘들더라도 꾸준히 공부하세요.

    실무에서  귀동냥한 스프링 지식들, 구글링해서 얻은 작은 지식들,

    스프링에서 발생한 오류들을 해결하면서 얻은 지식들을 꾸준히 조금씩 모아보세요

    그러면 어느 순간 스프링을 점점 이해할 수 있게되요.


    그리고나서 스프링 책을 보면 좀더 쉽게 이해할 수 있어요


    0
  • 통닭맨
    290
    2018-12-20 14:17:28

    저도 스프링 처음 접할때는 여지껏 해왔던 프로그래밍 방식이랑 달라서 많이 헤맸던것같습니다.

    이제 코딩 공부시작하신분들은 오죽할까요?

    그러다가  basscaft 님의 말과 비슷하게 먼저 자바서블릿으로 MVC 구현해보고 다시 스프링을 접했는데 그제서야 기존 방식이랑 차이점이 좀 보이기 시작하고 처음보단 이해가 더 잘되더라구요..물론 저도 앞으로 공부할게 산더미지만요 ㅎㅎ

    자바로 짜는 건 그래도 스프링처럼 복잡한 설정은 필요없어서 오히려 접근하기 더 쉬울수도 있습니다.

    그래도 작성자님 오류고칠때 포기하지 않고 끝까지 하시는거보면 충분히 잘하시리라 생각합니다.

    밑에는 제가 공부하면서 찾아봤던 링크들인데 도움이 되실까하여 남깁니다

    0
  • 램그로프
    295
    2018-12-20 21:20:17 작성 2018-12-20 21:21:59 수정됨

    독학한다고 하시니 학생이거나 적어도 자바 프로개발자는 아니신거 같은데 어려운게 당연한 것이 아닐까요? 책 몇 권 읽고 튜토리얼 따라해서 모든 게 이해된다면 누구나 리누스 토발즈가 될 수 있을 겁니다. 이해가 안 되는 내용은 우선 스킵하시고 기초부터 차근차근 따라해 보세요. 심도있는 내용은 이론과 경험이 맞물려야 이해가 되실 거예요

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