Please enable JavaScript in your browser to load website properly.

Click here if you'd like to learn how. Java에 대해서 배워보자! (1편 - 객체지향 프로그래밍에 대해서) (수정완) : 공부 - 와이고수
기록실
채팅 2
게임 0
유물

공부

실시간인기

Java에 대해서 배워보자! (1편 - 객체지향 프로그래밍에 대해서) (수정완) [73]

Minerals : 1,262,880 / Level : 중령 중령
2018-04-29 12:35:51 (7년 전) / READ : 8784

    와이고수에 토익 재능기부를 한 지 벌써 거의 반년이 된거같습니다.

    이번에는 자바를 알려드리고자 다시 돌아왔습니다.

     

    사실 C강좌는 많은데 제대로 된 Java강의는 좀 찾기가 힘들더라구요.

    이 강좌의 목표는 Java8 ~ Java9를 제대로 배우고 Spring까지 하는 방식으로 가고자 합니다.

    많은 협업자분들이나 갓고수님들께서도 피드백을 해주셨으면 좋겠습니다.

     

    저는 수업에 들어가기 이전에 객체지향프로그래밍(Object-Oriented Programming 이하, OOP)에 대해서 말씀드리고 가려고합니다.

    사실 가장 많은 Java 입문자들이 헷갈리는 부분입니다.

     

    도대체 객체지향이라는게 무엇일까요?

     

    핵심은 실세계를 모델링하기 위한 추상화를 활용하는 프로그래밍 패러다임입니다.

    말이 무척 어렵게 생각될지도 모르겠지만 단순하게 복잡한 실세계를 단순화 시켜서 소스코드로 녹여내는 기법 중에 하나라고 생각하시면 편할거같습니다.

     

    또한, 많은 분들이 착각하시는게 OOP는 Language를 타지않습니다. 즉, Class 키워드를 지원하지않는 C로도 OOP를 구현가능합니다.

    C는 절자지향언어, C++/Java는 객체지향언어는 매우 잘못된 상식이라고 말씀드리고 싶습니다.


    절차지향도 패러다임 / 객체지향도 패러다임일뿐입니다. 

    랭귀지는 그 방법을 사용하는 도구에 불과합니다. 단지, C와 같이 Class 키워드를 지원않는 언어에서는 OOP 구현이 가시성이 떨어지기때문에 선호되지않을뿐입니다.


    일단 OOP는 말 그대로 객체를 관점으로 보고 프로그래밍하는 패러다임입니다.

    여기서 객체(Object)란 무엇일까요?


    다음 사전을 찾아보면 

     

    스크린샷 2018-04-29 오전 11.08.41.png

     

    라고 나옵니다.

    사실 객체보다는 한글로는 개체에 적합하겠죠. 


    개체를 다음 사전에 검색을 해보면 

     

    스크린샷 2018-04-29 오전 11.09.36.png

     

     

    라고 나옵니다.

     

    좀 더 저는 설명을 덧붙여서 '이 세상에 존재하는 유일무이한 사물' 로 말씀드리고 싶습니다.

    또한, 이러한 객체들은 무생물이건 생물이건 속성들과 기능을 갖게됩니다.

    이에 대비되는 클래스의 특징을 설명드리자면

    클래스는 집합(즉, 같은 속성들과 개념들을 가진 객체들을 총칭하는 개념)이라고 설명 드리고 싶습니다.


    아직까지 "ㅆㅂ 뭔 개소리야?"라고 생각하신다면 당연하다고 말씀드리고 싶습니다.


    예를 들면, 사람이라는 클래스가 있으면 고붕이라는 객체가 있을겁니다.

    그리고 각 사람마다 주민번호도 다르고, 생김새도 다르고 키도 다르고 몸무게도 다를겁니다.

    즉, 88년생, 고붕이, 키 173, 몸무게 69, 눈의 크기는 어느정도... 등등.. 입니다.

    전세계에 이러한 속성과 100% 일치하는 사물이 있을까요? 다른 값이 다 같다고 한들 주민등록번호(나중에 따로 설명드릴겁니다.)가 똑같은 사람은 존재하지않죠.

    그래서 그 객체는 세계에서 유일무이한 것이 되는겁니다.

     

    하지만 키나 몸무게 주민번호, 눈의 개수, 코의 개수, 손의 개수 등등.. 정확한 값이 들어간건 아니지만 사람이라면 꼭 가져야할 속성들이 있습니다.

    그러한 속성들만 뽑아놓아서 추상화해 놓은 것이 클래스라고 말씀드릴 수 있을거 같습니다. (즉, 객체의 추상화를 통해서 공통집합을 뽑아낸것 = 클래스!)

     

    정리해보자면, 이 세계에 유일무이한 사물은 객체, 그것의 공통부분을 집합으로 만든 것은 클래스로 설명드리고 싶습니다.

     

    그렇다면? 여기서 설명하는 추상화(Abstaction)이 무엇을 뜻할까요?

    추상화(abstraction) - http://kin.naver.com/openkr/detail.nhn?docId=7554

    주어진 문제나 시스템을 중요하고 관계 있는 부분만 분리해 내어 간결하고 이해하기 쉽게 만드는 작업. 이러한 과정은 원래의 문제에서 구체적인 사항은 되도록 생략하고 핵심이 되는 원리만을 따지기 때문에 원래의 문제와는 전혀 관계가 없어 보이는 수학적인 모델이 나오기도 한다. 이 기법은 복잡한 문제나 시스템을 이해하거나 설계하는 데 없어서는 안될 중요한 요소이다. 

     

    즉, 추상화란 구체적인 것을 분해해서 관심영역의 특성만을 가지고 재조합한 것으로 볼 수 있을거같습니다.

     

    자 제가 삼신할매가 되었다는 가정하에 이제 Java를 이용하여 사람들을 만들어보겠습니다.

     

    사람 홍길동 = new 사람();

    사람 희동이 = new 사람();

     

    나중에 java문법을 말씀드릴테니 위의 예시는 참고만 해주세요. 

    위의 두 줄은 사람이라는 클래스에 홍길동이라는 객체와 희동이라는 객체를 만든겁니다.

     

    좀 더 세부적으로 말씀드리면, 사람이라는 클래스를 이용하여 새로운 유일무이한 객체(홍길동, 희동이)를 만들어 홍길동, 희동이(객체참조변수)라는 이름을 지어준 겁니다.

    앞으로 자주 나올 표현을 미리 정리해드리자면, 자바에서는 Class를 활용하여 Object를 만들때 Instance라는 표현을 씁니다.

    객체 = object = class's instance라고 생각하시면 됩니다.


    인간은 객체를 먼저 인식한 뒤에 클래스를 인식하게 됩니다.

    하지만 전지전능하신 하느님께서는 클래스를 먼저 인식하셔서 그 뒤로 아담과 이브라는 객체를 찍어내게 되셨죠.

     

    개발자도 또한 한 어플리케이션에 대해서는 창조자(하느님)과 같은 존재입니다.

    그러니 우리도 클래스를 먼저 인식하는게 최우선이 되는겁니다.

     

    그러면 OOP가 어떤점이 좋냐라고 말씀하시는 분이 계실겁니다.

    사람이라는 클래스를 만든다고 가정하에 생각해봅시다.

     

    클래스에는 속성과 행위가 필요합니다.

    속성은 키, 몸무게, 나이, 직업, 취미, 혈액형등등.. 이 포함됩니다. (주로 명사나 형용사가 포함됩니다.)

    행위는 자다, 먹다, 싸다, 공부하다, 가다등.. 이 포함됩니다. (주로 동사가 포함됩니다.)

     

    이것을 이용하여 UML Class Diagram을 설계해보면 


    스크린샷 2018-04-29 오후 12.06.57.png

     

     

    로 표현할 수 있을겁니다.

     

    하지만 사람의 속성과 행위는 이것보다 더 방대합니다.

    그래서 필요한게 어플리케이션의 경계입니다.

     

    내가 만드는 어플리케이션은 어디에서 사용될 것인가? 입니다.

    내가 만약 만들고자하는 어플리케이션이 백화점 어플리케이션인지 수강신청 어플리케이션인지가 중요한겁니다.

     

    백화점 어플리케이션이다.    -> 사람은 곧 고객이다.

    수강신청 어플리케이션이다. -> 사람은 곧 학생이다.

     

    백화점 어플리케이션을 만드는데 고객 클래스에 굳이 주민등록번호며, 키, 몸무게, 혈액형이 필요할까요? 마케팅을 위한 직업, 연봉, 나이정도의 속성만 있으면 되지않을까요?

    수강신청 어플리케이션을 만드는데 학생 클래스에 키, 몸무게, 혈액형, 연봉, 직업이 필요할까요? 수강신청을 위한 이름, 학력정도의 속성만 있으면 되지않을까요?

     

    행위도 마찬가지의 관점으로 보시면 됩니다.

     

    추상화를 여기서 더 구체적으로 말하자면,  추상화란 구체적인 것을 분해해서 관심 영역(어플리케이션 경계, Application Boundary)에 있는 특성만을 가지고 재조합하는 것 

    즉, 컴퓨터 영역에서의 모델링이라고 볼 수 있습니다.

     

    따라서 OOP와 절차지향의 차이는 모델링의 관점에서의 차이라고 생각하시면 됩니다.

    제가 서두에서 복잡한 실세계를 간단히하는 것이 OOP라고 말씀드렸습니다.

     

    즉, 절차지향으로 해결이 어려운 거대한 실세계의 문제를 모델링을 할 경우에 빛을 발한다고 생각하시면 편하실거같습니다.

    또한, 여기서는 추상화에 대해서만 다뤘지만 2편에는 상속, 캡슐화(정보은닉), 다형성을 설명드리면서 OOP가 갖는 특징에 대해서 더 심도깊게 다뤄볼 예정입니다.

     

    이 글을 쓰게 된 계기는 저는 잘못된 책의 예제들을 많이 봤습니다.

    편입을 한 후에 같은 과 학우들이 잘못된 생각으로 OOP를 접근하고 어려워하는 것을 많이봤고 또한 저도 실무에서 그런 경험을 해왔습니다.

    특히 제가 어렵게 생각했던 이유는 이러한 예시를 든 책이 많았습니다.

     

    클래스는 객체를 찍어내기 위한 틀이다. 따라서 붕어빵 틀은 클래스이고, 객체는 붕어빵이다.

    이건 사실 잘못된 예시라고 말씀드리고 싶습니다.


    붕어빵틀도 클래스고, 붕어빵도 클래스입니다.


    단순하게 생각해보시면 됩니다.

    다수의 붕어빵틀을 찍어내는 기계가 있다는 가정하에 그러면 붕어빵틀을 찍는 기계가 클래스고, 붕어빵틀이 객체인가요?

    아주 간단하게 코드로 옮겨내면 틀린얘기인 것을 알 수가 있습니다.

     

    Class Obj_name = new Class();라는 Java문법을 활용하면 

     

    기계 붕어빵틀_1 = new 기계();

    붕어빵틀 붕어빵_1 = new 붕어빵틀();

     

    위 두개의 예시가 저희가 생각한 방식이랑 같다고 생각하나요?

     

    그래서 

     

    붕어빵틀 붕어빵틀_1 = new 붕어빵틀();

    붕어빵 붕어빵_1 = new 붕어빵();

    이 맞다는 겁니다.

     

    제가 위에서 설명드린 객체와 클래스의 개념을 잘 생각해보세요.

    제가 지금 보고 먹고 있는 붕어빵은 '전 세계에서 유일무이한 한 객체'개념의 붕어빵이지만, 붕어빵도 당연히 클래스로 볼 수 있지않나요?

    또한 붕어빵틀도 제가 지금 붕어빵을 먹기위해서 서서 지켜보고 있는 그 시점의 붕어빵틀은 '객체'개념인겁니다.

     

    꼭 이 차이점을 숙지하시면 객체지향프로그래밍 개념은 어느정도 잡힌거라고 볼 수 있습니다.

     

     

    신고
    • 아니겠지만 학부수준의 학생이 쓴 글같습니다. 죄송한 말씀이지만, 이 글을 읽고 자바를 배울바에 이것이자바다 라는 책을 읽는게 더 나을것같습니다.
      초반부에 C언어로도 객체지향프로그래밍이 가능한데, 가시성이 떨어져서 선호되지 않는다고 하셨는데요. 이건 매우 잘못된 정보라고 생각이드네요. 애초에 C언어는 객체지향이라는 개념이 아에 없던 시기에 생겨난 언어입니다. C언어로는 그저 객체지향을 흉내만 낼 수 있는 수준으로 프로그래밍이 가능할 뿐입니다. 객체지향의 개념인 상속, 추상화, 인터페이스, 클래스, 캡슐화 등은 c언어에서는 존재하지 않는 개념과 문법이죠.
      그리고 c언어는 절차를 지향하는 언어가 맞고, 자바는 객체를 지향하는 언어가 맞는데. 이게 잘못된 상식이라니 조금 어이가없네요. 물론 자바로 c언어처럼 객체개념없이 절자지향적으로 프로그래밍이 가능 하고, c언어로 객체지향을 흉내내는 프로그래밍이 가능하다고는 하지만, 결론적으로는 자바는 객체 프로그래밍을 위해 생겨난 언어로 객체지향 언어가 맞습니다. C언어는 절차지향언어가 맞습니다.

      // 인서울 컴공 학부4년, sky 대학원2년 후 현재 중견기업
       전문연구요원으로 spring 서버 개발자로 복무중입니다.
      베스트 댓글
    • 댓글이 73 개 달렸습니다.
    • 7년 전
      선추천 후감상
    • 7년 전
      ㅇㄷ
    • 씬기
    • 정보글 추천 물론 어려워서 안읽음 ㅅㄱ
    • 7년 전
    • 7년 전
      와 설명 잘하셨네요. 일하면서 자바를 쓰는건 아니지만 다른 언어를 사용해도 문법차이지 이런 개념들은 동일하게 사용하니  매우 도움이 되네요. 모호했던 개념이 정리된 느낌이네요. 좋은설명 감사합니다!
    • 7년 전
      어우 스프링까지 가려면 장난 아닐텐데 화이팅입니다.
    • 7년 전
      @믿거홍아주간략하게만 다룰려고요 ㅎㅎ 맛보기 후 토비 스프링책 보고 자습을 목적으로!!
    • 7년 전
      벌써부터 애들 보지도않을꺼에
      프로그래밍 ㅇㄷ  하는모습이 보인다
    • 내용은 좋은데 뭔가 아쉬운 느낌 
    • 7년 전
      @인생은 섹스부족한 부분 알려주시면 적극반영하겠습니다!
    • @고붕이w제가 좀 완벽추구성향이라.. 기분 언짢으실수도..

      폰트, 문단 정리, 예시용 영문 소스 코드 추가, 소스코드 하이라이트, 특정 단어 부가 설명
    • 7년 전
      @인생은 섹스하려고 했는데 생각보다 시간이 많이 걸리더라구요 ㅠ
      다음번에는 보다 완벽한 글로 작성해보겠습니다.
    • @고붕이그렇죠.. 남들을 정말 이해하기 쉽게 작성한다는게 보통일이 아니에요.. 고생하십니다..

      저는 5년간 사용했던 언어 잠시 멈추고 이제 자바 공부중이에요. 그러니 항상 게시글 기대할께요 화이팅 ~
    • 7년 전
      @인생은 섹스네 ㅎㅎ 제가 쓴 글은 약간 참고서마냥 이런식으로도 해석이 가능하구나! 라고 보시고 주는 잘쓰여진 책이나 강좌인거 잊지마세요!!
    • 이제 어렸을 때부터 프로그래밍 배운다는데 후....
    • 7년 전
      @서포터전문요즘은 예체능 문과 이과 상관없이 대학생 전필로 코딩갈키더라구여
    • 요약좀
    • 7년 전
      @우리동네오덕대장1. 클래스는 객체의 추상화를 통해서 나타난다.
      2. 추상화는 구체적인 것을 분해해서 관심영역에 표현할 특성들로 재조합하는 것이다.
      3. 클래스는 속성과 행위를 가진다.
      4. 절차지향과 객체지향은 패러다임이지 언어를 타지않는다.
      5. OOP는 복잡한 실세계를 보다 단순히 추상화(모델링)하여 처리하기 위해 탄생한 패러다임이다.
    • @고붕이넘모 친절하시네 작성자분 ㅋㅋ
    • 7년 전
      자바 ㅇㄷ
    • 7년 전
      와드합니바
    • 내손을 자바
      바라 꼭
    • 7년 전
      요즘 자바공부중 ㅜㅜ
    • 객체부터 설명해서 후로그래밍을 해보려던 분들은 조금 난해할수도있겠네요 무튼 정성글 ㅇㄷ
    • 7년 전
      @학교탈출hello world부터 시작하려했으나 먼저 개념적 설명부터 하는게 맞는거같다고 느꼈어요 ㅎㅎ 저또한 아직도 객체지향의 개념을 완벽히 이해하고 자바를 100% 다룬다고 자부는 할 수 없지만 제가 이해못했던 어려운 개념들을 위주로 어떻게 이해했고 넘어갔는지 시작하려고합니다.
      특히 객체지향의 개념은 처음부터 제대로 안잡아놓으면 결국 나중가서 고생하게 되더라구요.
    • 자바1ㅇㄷ
    • ㅋㅋㅋㅋ이렇게 자바배울수있으면 다배울듯
    • 7년 전
      ㅇㄷ
    • 선추천후 감상 다음편 기대하겠습니다 
    • 아니겠지만 학부수준의 학생이 쓴 글같습니다. 죄송한 말씀이지만, 이 글을 읽고 자바를 배울바에 이것이자바다 라는 책을 읽는게 더 나을것같습니다.
      초반부에 C언어로도 객체지향프로그래밍이 가능한데, 가시성이 떨어져서 선호되지 않는다고 하셨는데요. 이건 매우 잘못된 정보라고 생각이드네요. 애초에 C언어는 객체지향이라는 개념이 아에 없던 시기에 생겨난 언어입니다. C언어로는 그저 객체지향을 흉내만 낼 수 있는 수준으로 프로그래밍이 가능할 뿐입니다. 객체지향의 개념인 상속, 추상화, 인터페이스, 클래스, 캡슐화 등은 c언어에서는 존재하지 않는 개념과 문법이죠.
      그리고 c언어는 절차를 지향하는 언어가 맞고, 자바는 객체를 지향하는 언어가 맞는데. 이게 잘못된 상식이라니 조금 어이가없네요. 물론 자바로 c언어처럼 객체개념없이 절자지향적으로 프로그래밍이 가능 하고, c언어로 객체지향을 흉내내는 프로그래밍이 가능하다고는 하지만, 결론적으로는 자바는 객체 프로그래밍을 위해 생겨난 언어로 객체지향 언어가 맞습니다. C언어는 절차지향언어가 맞습니다.

      // 인서울 컴공 학부4년, sky 대학원2년 후 현재 중견기업
       전문연구요원으로 spring 서버 개발자로 복무중입니다.
      베스트 댓글
    • 7년 전
      @신입개발자1년차일단, 좋은 지적 감사드립니다 :) 
      스펙을 써놓으셔서 제 스펙도 말씀드리면 대기업에서 1년정도 spring 개발했었고 중소기업 2년정도 spring 개발을 했었습니다.

      댓글을 읽어보니 제가 오해의 소지가 있게 적은거같습니다.
      https://www.codementor.io/michaelsafyan/object-oriented-programming-in-c-du1081gw2

      gfx나 gobject + c등 다양한 oop in c 예제가 많습니다.
      안쓰는 이유는 다양하지만 일단 oop로 작성하기 매우 불편하고 제가 말한거처럼 가시성도 떨어져서 코드리팩토링도 어려워지죠.

      말 그대로 c가 나왔던 당시에는 객체지향의 개념이 없었던 것은 맞습니다. 하지만, 객체지향 패러다임이 프로그래밍에서 붐을 이룬 후에는 위에 적은 gfx를 사용하거나 gobject를 사용하는등.. c로 oop로 구현하는 예시들도 많아졌습니다.

      제가 저 본문에서 하고 싶은 얘기는 oop를 c로도 구현가능하나 안쓰는 이유는 수많은 단점이 있으며 그 단점을 이겨낼 바에는 c++과 java를 쓴다는 거였는데 내용이 누락되서 오해의 소지가 다분해보이네요.

      그러니 언어의 틀에 박힌 개념이 아니라 패러다임이라고 부르는 이유가 java에서만 oop만 쓸 수 있고 c에서만 절차지향 프로그래밍을 쓸 수 있는게 아니라 자바에서도 함수형 프로그래밍, 절차지향 프로그래밍도 가능하고 c도 가능하다는 점도 알리고 싶었는데 제가 오해하게끔 적어놓은거같습니다.

      책은 저는 java의 정석을 좀 더 추천드립니다. 
    • @고붕이부연설명 감사합니다.
    • @신입개발자1년차좀 찾아보니까, C 는 1972년 데니스쨩이 만듬
      객체지향은 1960년 조한달 씨와 크리스틴 씨가 클래스를 제안함. 개념자체는 있었음.

      객체지향은 객체를 가지고 프로그래밍을 하겠다라는 생각이며, 상속, 인터페이스 ,캡슐화는 부가적인 느낌이 강한거 같음, 이건뭐 개인적인 생각.

      그런관점에서본다면 구조체는 클래스의 대용으로 생각됨.
    • 글쓴이에게 학문에 대한 열정이 넘쳐보여서 이런 말 하기 좀 모하지만 그래도 유튜브에 널린 자바강의동영상이 몇갠데 ㅋㅋㅋㅋㅋ
    • 7년 전
      @람쥐살임마제 정리겸 공유차원이죠 뭐~~ 
    • 파이썬이나 C같은 다른 언어도 해볼 생각 있으신가요
    • 7년 전
      @너땜에와고가입함C언어는 와고 실인게 검색하면 아마 엄청 잘된 강좌 올리셨던분 계실거에요. 
      탈퇴하셨는지 링크를 못찾겠네요 ㅠㅠ 
    • 7년 전
      ㅇㄷ
    • ㅇㄷ
    • 7년 전
      자바ㅇㄷ
    • 7년 전
      java ㅇㄷ
    • 7년 전
      자바 ㅇㄷ
    • 7년 전
      자바 ㅇㄷ
    • 좋은 글이네요. 
      그러니까 이미 정형화된 클래스를 가지고 
      유일무이한 객체를 만들어내는게 자바군요!
    • 7년 전
      @안젤리나다닐로바제대로 이해하셨습니다!
    • 7년 전
      자바 입문
    • 7년 전
      자바 끝나면 다음은 파이썬 ㄱㄱ
    • 7년 전
      자바 ㅇㄷ
    • 7년 전
      자바관련해서 더 올려주세용
    • 허접하네요
    • 7년 전
      ㅇㄷ
    • 7년 전
      솔직히 허접함 저번에 c는 그나마 낫드만, 이거 읽느니 이것이자바다나 java의정석같은 초고수들이 몇년간 집필한 양질의 교재 읽는게 낫고(강의등도 다 무료) 코드스쿼드,인프런 하다못해 생활코딩 보는게 낫다고봄. 어차피 실습 병행하면서 하지 않으면 체화도 불가능하고 솔직하게 말해봤음, 상처는 받지마셈. 
    • 7년 전
      @기린아상처라뇨 당연한 말씀입니다.
      저도 양질의 강의 및 교과서 (JAVA의 정석과 같은)를 따라가는게 맞다고 생각을 합니다.

      사실 강의보다는 제가 실무에서 겪었던 문제점들과 체화가 쉽사리 되지않았던 개념들 (객체지향이나 디자인패턴 등..)을 위주로 올려보고자 글을 쓰게됐습니다.

      당연히 제가 올린 글은 아 이런것도 있구나 넘어가는것이고, 다른 교재나 강의를 보는게 맞다고 생각합니다 :)
    • ㅇㄷ
    • 훌륭하네 이런 싸이트에 이런 정보를 올리다니 좋군요 다만 절차지향적 언어에 대한 한계와 문제점 어려움 등을 설명하고 나서 그걸 타파 하기 위해서 좀도 효율적이고 버그가 절하고 실생활 프로그램에 훨씬용이한 객채지향적 언어가 나왔다는 것을 설명해 주면 좋을것 같네요 c로서 도스와 윈도우의 혼합시기에서 c로 스트럭처에 데이터 형과 보이드형 평션 포인터를 넣어가면 울며 겨자먹기로 클래스를 흉내내면서  그렇게 c프로그래머들은 이미 스스로 객체지향어에 목말라 했답니다 객체지향 언어가 나왔을때의 환희는 정말 대단했습니다 자바 처음 나오고 책도 없이 모근 개발자는 자바의 소스코드가 그자체가 oop교과서 였답니다 ㅎㅎㅎ 왜 라는게 중요하다면 이 부분 짚어 줄수 있으면 더 좋을 꺼에요 이젠 너무 예전이야기라서 ㅎㅎㅎ
    • 7년 전
      @정신차려아하 따끔한 지적 감사합니다!! 
      제가 글을 좀 두서없이 쓰는거같아요 ㅠ ㅠ
      다음부터는 좀 더 다듬은 다음에 올리고 상세한 부연설명을 달아보도록 노력하겠습니다!
    • 그리고 이런건 책보고 배우라 하면 됩니다 에너지 쓰지 마시구요. 어차피 알놈만 알기에
    • 7년 전
      @정신차려아 지금 동아리 애들 자바 세미나하고 있는데 정리겸 저도 갓고수님들한테 제가 제대로 쓴건지 따끔한 조언을 얻고자는 목적 + 다같이 배우면 좋으니까 공유차원에 올리는거같아요 ㅎㅎ 한분이라도 도움되셨으면 좋겠어가지고요
    • 7년 전
      ㅇㄷ
    • 안녕하세요! 정말 좋은 글 감사합니다. 다름이 아니오라 혹시 비주얼베이직도 가능하시다면.. 강의한번 해주시면 안될까 싶어서 댓글적게 되었습니다. 자바나 C언어 같은 경우에는 공학에 관련된 분들이 많이 사용하시는 걸로 알고있지만, 비쥬얼베이직은 엑셀을 사용하는 기업이라면 업무를 더욱더 편리하게 만들어 줄 수 있다고 생각하는게 비쥬얼베이직이라고 생각합니다!! 
    • 7년 전
      자바를 처음 배우는 학생이라면 저런식의 객체지향 공부법에 대해서 나쁘지 않다고 생각 하는데 실무 경험이 좀 있는 개발자 라면 조금 이야기는 달라져서 댓글 남깁니다. 

      현실 세계에 존재하는 사물에 대한 추상화라는 것은 객체지향의 기반을 이루는 근본적인 개념을 설명하기에는 적당하지만 애플리케이션을 개발하면서 객체에 직접적으로 대응되는 실제계의 사물을 발견하는 것은 거의 없으며 있다고 해도 객체와 사물 간의 개념적 거리는 유사성을 찾기 힘들다는 것이 정설입니다.  또 더 나아가 소프트웨어가 반영해야 하는 객관적인 실제계가 존재한다는 아이디어조자도 논란의 여지가 있죠

      혹시 이부분에 대해서 인지를 하셨지만 자바를 처음 배우는 사람들을 위해 객체지향 기반에 대한 개념적인 설명을 해주고 싶을 뿐이 셨다면 충분히 이해됩니다. 
    • 최근에 자바학원 수료 후 면접 준비 중인데 기술면접 대비 중에 개념정리가 잘 안되고 있어서 걱정이였는데 좋은 글 올려주셔서 너무너무 감사합니다 . 앞으로 쭉 정독하면서 열심히 공부해 보겠습니다 정말 너무 감사드립니다!! 
    • 자바 ㅇㄷ
    • de
    • 7년 전
      ㅇㄷ
    • java에 대해서 초보자들도 알 수 있도록 쓰려고 하는 글 같은데 
      평가 존나 냉정하네 ㅋㅋㅋㅋㅋ

      야이 시발 이거 하나 꼴랑 보고 java에 대해 많이 알거라는 기대치를 잡고 쓴 글이겠냐
      그냥 java에서 가장 기본 개념인 OOP을 비전공한 사람도 이게 무엇인지 알려주려고 스타트 뗀 글이구만
      무슨 실무 입장에선, 코딩 기술적인 측면에선, 내용 부실 이런걸 논하고 있어
    • 자바 ㅇㄷ
    • ㅎㅎ
    • 와고엔역시 컴공들이 많아
    • 7년 전
      ㅇㄷ
    • java 공부하려는데 JAVA의 정석 책을 추천하시나욤 ?
    • 7년 전
      잘 읽었습니다. 
      다음 편 기다리고 있습니다.
    글목록 이전글 다음글
    글쓰기


    공부

    🎉 미네랄 와토 베타 테스트 게시판 오픈 안내 (16) YGOSU 25.06.18-
    [정보] [마케팅국비교육] 비전공자도 가능! 마케팅 취업 준비 끝판왕 교육 A to Z 아이티윌 부산10425.07.23-
    취업 썰 풀면 치킨 준다는데? 룰루랄라룰루룰루13225.07.22-
    [질문] 공부방법에 대해서 질문드립니다. (3)스페이너12825.07.21-
    [정보] 학점이 곧 권력”… 고교학점제, 강남 조폭이 설계했다 Hannam14525.07.17-
    공게 글좀재미있는토스10425.07.17-
    공부시작재미있는토스10925.07.14-
    [정보] [아이티윌부산] 마케팅 신입 취업 성공 : 비전공자도 가능한 국비 마케팅 취업교육 아이티윌 부산18325.07.10-
    LH 서류합 스펙 확인! 룰루랄라룰루룰루19025.07.08-
    [정보] [자바 개발자 KDT 과정] 신기술 IT 6개월 취업반 / 2개월 심화반 실무 인재 양성  아이티윌 부산19325.07.04-
    사교육 내신+학생부가 수능논술까지 제도개선요청 [국민청원동의]키랄 합성물19125.06.30-
    [질문] 709 ㅇㄷ? (1)모내기파보스27225.06.30추천 3
    [정보] [자바 개발자 KDT 과정] 신기술 IT 6개월 취업반 / 2개월 심화반 실무 인재 양성  아이티윌 부산19425.06.27-
    각국 유학 도시 top3 라는데 (1) lede1224925.06.25-
    오늘 공무원 시험이었는데 역대급 (1)낭만이야36725.06.21-
    [정보] [자바 개발자 KDT 과정] 신기술 IT 6개월 취업반 / 2개월 심화반 실무 인재 양성  아이티윌 부산18825.06.20-
    자격증 10개 찍었다 (13) 와이생산고수65925.06.15추천 3
    [정보] [자바 개발자 KDT 과정] 신기술 IT 6개월 취업반 / 2개월 심화반 실무 인재 양성  아이티윌 부산28225.06.13-
    기사시험 실기 3트째 불합이다.. (8)백수저격기45825.06.13추천 2
    컴활 자료집 무료배포 룰루랄라룰루룰루26525.06.12-
    연봉 3600이면 많이 버는 줄 알았는데 (2)위드125325.06.02추천 5
    [정보] 여기가..그... (1)현빈62125.06.01추천 6
    나는 중국을 (1)bdzhd52225.05.31추천 5
    [정보] [★고용노동부 5년인증 우수훈련기관] K-디지털트레이닝 신기술 IT 실무 인재 양성 모집  아이티윌 부산45525.05.30-
    대통령 선거 투표 관련해서 궁금한 게 하나 있음 (4)ygo012544025.05.29추천 2
    [질문] 공장 생산직 다니면서 공부 가능하냐 (4)Nasir56025.05.29추천 2
    글쓰기