전체 글

I work diligently to become lazy.
'자바는 객체 지향 언어래' '객체가 뭔데 지향을 한대? 지양도 아니고' '객체가 뭔진 나도 몰라. 근데 엄청 좋은거래' '그래? 그럼 어디에 좋은건데?' '몰라. 자바는 객체 지향 언어인데 이게 좋다는것만 알아. 중요하다고 하니까 일단 외워. 나중에 알게 된대.' 프로그래밍 언어를 처음 배우던 때를 기억한다. '이런게 있습니다. 보고 넘어가세요. 나중에 이해 됩니다.' 생각해보면 무슨 의도인지 알겠으나, 그냥 넘어가라는 말이 싫었다. 마치 '넌 아직 어려서 몰라. 크면 다 알게 된단다.' 같은 느낌이다. 돌려 말했지만 무시 당하는 기분. 어느날 생각했다. 이렇게 배우는 방법밖에 없는걸까. 처음부터 이해할 수 없을까. 이번 글의 목표는 개념적인 부분을 이해하는 것이다. 때문에 문법적인 언어 사용 방법보다..
Whiteship Java live study season 01 현재 네이버 블로그에 정리되어 있어 링크로 대체 합니다. pc 환경에 최적화 되어 있습니다. WEEK 01 :: JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. JVM 이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성요소 JDK 와 JRE의 차이 WEEK 02 :: 자바 데이터 타입, 변수 그리고 배열 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var WEEK 03 :: 연산자..
· Archive/js
java를 공부하다보면 중요한 개념으로 this 라는 키워드를 만나게 된다. java에서는 보통 다음과 같은 경우에 만나볼 수 있다. public class Test { private String name; private int age; public Test() {} public Test(String name, int age) { this.name = name; this.age = age; } public static void main(String[] ar) { } } this가 사용된 부분은 6, 7 라인이다. 여기서 this는 this 키워드가 작성된 클래스 자기 자신을 뜻한다. 그래서 5라인에서의 name, age와 구분하기 위해 자기 자신임을 뜻하는 this를 사용하고 있는 부분이다. 그 증거로 ..
· Archive/js
javascript에 대해 막연하게 단순하고 쉬운 스크립트 언어 라고만 생각했다. 굉장히 후회하고 또 반성하고 있다. 늦게나마 javascript에 대해 알아보는데, 새로운걸 알아갈수록 기쁘다기보다 부끄러운 마음이 더 크다. 일반적으로 프로그래밍 언어를 시작할 때 배우는 java나 c를 가지고 예를 들어보자. (java를 기준으로 알아볼 예정이다.) if(true) { String name = "xxxelppa"; } System.out.println("이름 : " + name); 소스상에 위와 같은 부분이 있다고 하자. 장담하건데 "cannot be resolved to a variable' 라는 컴파일 오류가 발생할 것이다. 왜냐면 name이라는 변수는 if 조건절 안에 선언된 변수이기 때문이다. 그..
개인적으로 다른 사이트(?)를 하나 더 운영하고 있다. 사실 티스토리를 시작하면서 그쪽 관리가 소홀해졌지만, 댓글과 같은 것은 가능한 성심성의것 답변을 하고 있다. 그중 이렇게까지 많은 관심을 받아본 적이 없던 컨텐츠가 바로 YBM IT에서 주관하는 COS 자격 시험이다. 이 자격시험에 관한 게시물이 인기가 많고 관심을 많이 받는 이유가 있다. 1. 그리 오래되지 않은 시험이라 정보가 부족하다. 2. 2018년부터 점차적으로 소프트웨어 교육을 의무화 하는데 scratch언어가 사용될 것이다. 3. COS 시험은 scratch 언어로 보는 CBT방식의 자격 시험이다. 그래서 온오프라인에서 자주 받았던 질문을 정리 해보려한다. (네가 뭔가 이런 소릴 하냐고, 신빙성 있는 내용이냐고 의심스럽다면 이 링크를 참..
· Archive/Java
자바에서 인터페이스를 사용하는 이유가 무엇일까? 아마 인터페이스를 처음 접해보는 분들이 많이 궁금해 하는 부분일거라고 생각한다. 그냥 그 기능을 클래스로 구현해도 될 것 같은데 번거롭게(?) 인터페이스까지 사용해서 또 인터페이스에 대한 학습도 해야하기 때문이다. 이세상 모든건 그게 왜 필요한지를 알면 이해하는데 도움이 많이 된다. interface라고 쓰는 이 인터페이스는 결론부터 얘기하면 '공동 작업시 충돌을 방지하기 위해서'라고 한다. 다른 많은 이점이 있지만, 처음 내가 배울 당시 인터페이스 사용 이유는 공동 작업을 할때 유연함을 위해서다. 다음과 같은 상황을 생각해보자. A씨는 필기도구를 사용해서 글씨를 쓰는 프로그램을 개발하는 프로젝트를 진행하고 있다. 그러던 중 같은 팀의 연필을 개발하는 김개..
· Archive/Java
Q > 예를 들어 int[] a = new int[5]가 있으면 이 배열도 객체라는데 무슨말인지 잘 모르겠습니다. int라는 이름의 클래스가 있다는 말과 동일하나요? Integer Wrapper 클래스와 연관성은 없는 것 인가요? 알기 쉽게 설명해주세요. A > 배열을 객체라고 부른다. 그 이유가 무엇일까? 보통 객체를 생성한다라고하면 클래스의 객체를 많이 떠올린다. 그렇다고 클래스부터 설명을 할 수는 없는 노릇이다. 클래스에 대해서는 안다고 가정하고 클래스와 객체와의 관계에 대해 생각해보자. 클래스는 자료형이다. 이 사실을 잊어선 안된다. 왜냐면 자료형은 그 자료가 가진 형태를 나타내는 것이기 때문에 스스로는 사용될 수 없다. 누군가가 그 형태를 가지는 실체를 만들어 내야만 사용할 수 있다. 이런 관점..
· Archive/Java
나는 개인적으로 클래스와 객체를 설명할 때 붕어빵 틀을 비유하는걸 싫어한다. 마음에 들지 않는다. 내가 배울 당시 이렇게 배우지 않았을 뿐만 아니라 개인적으로 잘 와닿지도 않았다. 그래서 내가 배운 방법으로 클래스란 무엇이며 이 클래스와 객체와의 관계를 어떻게 이해하면 좋은지 정리해보려 한다. 클래스는 우리가 일상 생활속에서 볼 수 있는 모든 것들을 표현할 수 있는 도구라고 생각하는 것도 좋은 발상이다. 클래스를 구성하고 있는 큰 두가지 개념이 있다. 하나는 멤버필드라는 개념이며 다른 하나는 멤버 메서드라는 개념이다. 멤버 필드란, 그 클래스가 표현하고자 하는 대상이 가지는 속성들을 의미한다. 높이, 색상, 속도, 속력, 방향, 무게 등 일반적인 사물들이 가질 수 있는 모든 속성들을 말한다. 멤버 메서드..
nimkoes
한칸짜리책상서랍