Archive 114

나 혼자 떠드는 자바 : 자료의 형태(data type) : 상수, 변수, 배열, (구조체), 클래스 그리고 사용자 정의 자료형

3. 자료의 형태(data type) : 상수, 변수, 배열, (구조체), 클래스 그리고 사용자 정의 자료형. 개념적인 부분을 중심으로 설명을 할 것이기 때문에 특정 언어에 종속된 소스 코드 작성을 지양하려 한다. 그렇지만 필요할 경우 pseudocode 라고 하는 의사어 코드를 사용하려 한다. 의사어 코드는 일반적으로 알고리즘을 어떻게 구현할지 등을 전달 할 목적으로 일반적인 언어를 사용해 모델링 하는데 쓰인다. 여기서는 알고리즘이 아닌 내용 전달을 위한 용도로 사용할 예정이다. 의사어 코드가 사람마다 문법이 달라 보통 서두에 약속을 하는데, 그럴 필요 없을 정도의 수준으로 작성할 예정이다. 1. 상수 (constant, literal) 상수를 사전에 찾아보면 '변하지 않고 항상 같은 값을 가지는 수'..

나 혼자 떠드는 자바 : 자바 언어가 가지는 특징 '배워본 언어가 없는데 어떻게 비교를 해'

2. 자바 언어가 가지는 특징 : 배워본 언어가 없는데 비교를 어떻게 해. 지금까지 내가 접한 입문서의 전반부에 자주 등장하는 내용이다. 프로그래밍 언어가 무엇인지를 시작으로 언어의 발전 과정을 시간의 흐름으로 살펴본다. 그리고 뒤이어 다루는 주제는 그 언어의 특징이다. 처음 자바의 특징을 볼 때 당황했다. 비교 대상이 있어야 특징을 이해할 것 아닌가. '나중에 다시 보면 이해할 수 있습니다. 지금은 그냥 한 번 쭉 읽어보고 넘어가세요'라고 말하기 시작하는 부분이다. 프로그래밍을 처음 접하면 난해한 내용이지만 시도는 해볼만 하다. 많은 특징들이 있지만 자주 다루는 몇 가지 내용을 선정했다. 1. 이식성이 높은 언어이다. 2. 속도가 느리다. 3. 객체 지향 언어이다. 4. 메모리를 자동으로 관리한다. 5..

나 혼자 떠드는 자바 : 프로그래밍 언어란

1. 프로그래밍 언어란. 이제 시작인데 졸음이 몰려오는 기분이다. 언어가 언제부터 왜 생겨났는지 그 배경을 시작으로 어떻게 발전해 왔는지에 대해 아는것은 중요하다. 하지만 이런 내용들에 대해선 지금은 다 각설하고 하나는 기억하고 넘어가자. 자바는 1995년 썬 마이크로 시스템즈에서 개발한 프로그래밍 언어이고, 창시자는 제임스 고슬링(James Arthur Gosling)이다. 내용을 통째로 생략했지만, 누가 언제 어디서 만들었는지 정도는 알아야 하지 않을까? 본격적으로 프로그래밍 언어가 무엇인지 생각해보자. 단어에서 알 수 있는 사실은 프로그래밍 언어도 하나의 언어 라는 것이다. 이 사실을 잊지 말자. 언어는 다음과 같이 정의 되어있다. "생각, 느낌 따위를 나타내거나 전달하는 데에 쓰는 음성, 문자 따..

나 혼자 떠드는 자바 : 내용구성

정리는 다음 순서로 진행할 예정이다. 1. 프로그래밍 언어란 프로그래밍 언어도 언어라고 부르는 이상 일상에서 사용하는 언어와 크게 다르지 않다. 2. 자바 언어가 가지는 특징 배워본 언어가 없는데 어떻게 비교를 해? 비교라는건 둘 이상의 서로 다른 무엇인가의 공통점과 차이점을 통해 서로의 장단을 샅피는 일이다. 문제는 처음 배우는데 비교 대상이 없다. 그래서 일상의 예를 통해 자바의 특징에 대해 살펴 본다. 3. 자료의 형태 (data type) 상수, 변수, 배열, (구조체), 클래스 그리고 사용자 정의 자료형 이 세상 모든것은 아무리 사소해 보이는 것도 존재의 이유가 있다. 이런 것들을 만들 수 밖에 없었던 선배 개발자 분들의 생각을 추측해 본다. 4. 자바 실행 환경 자바 설치 방법 즐거운 메모장 ..

나 혼자 떠드는 자바 : 시작하며

'자바는 객체 지향 언어래' '객체가 뭔데 지향을 한대? 지양도 아니고' '객체가 뭔진 나도 몰라. 근데 엄청 좋은거래' '그래? 그럼 어디에 좋은건데?' '몰라. 자바는 객체 지향 언어인데 이게 좋다는것만 알아. 중요하다고 하니까 일단 외워. 나중에 알게 된대.' 프로그래밍 언어를 처음 배우던 때를 기억한다. '이런게 있습니다. 보고 넘어가세요. 나중에 이해 됩니다.' 생각해보면 무슨 의도인지 알겠으나, 그냥 넘어가라는 말이 싫었다. 마치 '넌 아직 어려서 몰라. 크면 다 알게 된단다.' 같은 느낌이다. 돌려 말했지만 무시 당하는 기분. 어느날 생각했다. 이렇게 배우는 방법밖에 없는걸까. 처음부터 이해할 수 없을까. 이번 글의 목표는 개념적인 부분을 이해하는 것이다. 때문에 문법적인 언어 사용 방법보다..

Whiteship Java live study S01

Whiteship Java live study season 01 현재 네이버 블로그에 정리되어 있어 링크로 대체 합니다. pc 환경에 최적화 되어 있습니다. WEEK 01 :: JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. JVM 이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성요소 JDK 와 JRE의 차이 WEEK 02 :: 자바 데이터 타입, 변수 그리고 배열 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var WEEK 03 :: 연산자..

javascript 에서의 this 키워드

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 2017.12.21

javascript로 information hiding 해보기. (private 변수, scope에 대한 이해)

javascript에 대해 막연하게 단순하고 쉬운 스크립트 언어 라고만 생각했다. 굉장히 후회하고 또 반성하고 있다. 늦게나마 javascript에 대해 알아보는데, 새로운걸 알아갈수록 기쁘다기보다 부끄러운 마음이 더 크다. 일반적으로 프로그래밍 언어를 시작할 때 배우는 java나 c를 가지고 예를 들어보자. (java를 기준으로 알아볼 예정이다.) if(true) { String name = "xxxelppa"; } System.out.println("이름 : " + name); 소스상에 위와 같은 부분이 있다고 하자. 장담하건데 "cannot be resolved to a variable' 라는 컴파일 오류가 발생할 것이다. 왜냐면 name이라는 변수는 if 조건절 안에 선언된 변수이기 때문이다. 그..

Archive/js 2017.12.19

YBM IT _ COS 1급 자격증 자주 받는 질문과 궁금증 정리

개인적으로 다른 사이트(?)를 하나 더 운영하고 있다. 사실 티스토리를 시작하면서 그쪽 관리가 소홀해졌지만, 댓글과 같은 것은 가능한 성심성의것 답변을 하고 있다. 그중 이렇게까지 많은 관심을 받아본 적이 없던 컨텐츠가 바로 YBM IT에서 주관하는 COS 자격 시험이다. 이 자격시험에 관한 게시물이 인기가 많고 관심을 많이 받는 이유가 있다. 1. 그리 오래되지 않은 시험이라 정보가 부족하다. 2. 2018년부터 점차적으로 소프트웨어 교육을 의무화 하는데 scratch언어가 사용될 것이다. 3. COS 시험은 scratch 언어로 보는 CBT방식의 자격 시험이다. 그래서 온오프라인에서 자주 받았던 질문을 정리 해보려한다. (네가 뭔가 이런 소릴 하냐고, 신빙성 있는 내용이냐고 의심스럽다면 이 링크를 참..

Archive/scratch 2017.07.11

자바에서 인터페이스를 사용하는 이유

자바에서 인터페이스를 사용하는 이유가 무엇일까? 아마 인터페이스를 처음 접해보는 분들이 많이 궁금해 하는 부분일거라고 생각한다. 그냥 그 기능을 클래스로 구현해도 될 것 같은데 번거롭게(?) 인터페이스까지 사용해서 또 인터페이스에 대한 학습도 해야하기 때문이다. 이세상 모든건 그게 왜 필요한지를 알면 이해하는데 도움이 많이 된다. interface라고 쓰는 이 인터페이스는 결론부터 얘기하면 '공동 작업시 충돌을 방지하기 위해서'라고 한다. 다른 많은 이점이 있지만, 처음 내가 배울 당시 인터페이스 사용 이유는 공동 작업을 할때 유연함을 위해서다. 다음과 같은 상황을 생각해보자. A씨는 필기도구를 사용해서 글씨를 쓰는 프로그램을 개발하는 프로젝트를 진행하고 있다. 그러던 중 같은 팀의 연필을 개발하는 김개..

Archive/Java 2017.07.09