본문 바로가기

분류 전체보기54

[자바의 신] 참조 자료형 - 메소드 참조 자료형의 중요한 내용중 하나인 메소드에 대해서 알아보자. 메소드 종료조건? 모든 문장이 실행되었을 때, return을 만났을 때 예외가 발생했을 때 모든 문장이 실행된것은 말 그대로 메소드의 중괄호 안에 모든 문장이 실행되었고, 더이상 실행할 문장이 없으면 메소드가 종료된다는 것이다. return은 뭘까? public class MethodTest { public static void main(String[] args) { } public int returnIntMethod() { int intValue = 100; return intValue; } public String returnStrMethod(){ String strValue = "스트링"; return strValue; } public .. 2020. 9. 27.
[자바의 신] 참조 자료형 - 생성자 자바에서 기본자료형을 제외한 모든 타입이 참조자료형이다. 참조 자료형은 객체를 초기화할때 new 키워드를 사용한다. (배열과 String은 좀 특이해서 new를 사용하지 않아도 객체를 생성, 초기화 할수 있지만, 이 두 가지를 제외한 모든 참조 자료형은 new를 사용해야한다.) 우리가 앞에서 만든 Bicycle 클래스도 참조자료형이다. 코드를 한번 보자. public class Bicycle { // 변수(상태) 시작 public String color;// 색상 public String grip;// 손잡이모양 public int speed;// 속도 public int distance;// 거리 public int weight;// 무게 // 변수(상태) 끝 public Bicycle(){ } // .. 2020. 9. 21.
도커 이미지, 도커 컨테이너 도커 이미지, 도커 컨테이너는 도커 엔진에서 사용하는 기본 단위다. 1. 도커 이미지 도커 이미지는 도커 컨테이너 생성에 필요한 파일과 설정값 등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않습니다(Immutable). 같은 이미지에서 여러개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있습니다. - 초보를 위한 도커 안내서 - 도커란 무엇인가? (도커 이미지가 상태값을 가지지 않는다는게 무슨 말이지?) 도커 이미지는 아래와 같은 형태의 명령어로 내려받을 수 있다. ([저장소 이름]/)[이미지 이름](:[이미지 버전]) 저장소 이름 생략 가능 이미지가 저장된 위치를 의미함. 저장소 이름이 없는 이미지는 도커에서 기존적으로 제공하는.. 2020. 9. 18.
Docker for Windows 설치 도커는 리눅스 환경에서 최적화 되어 있다. 하지만 간단하게 도커를 공부할껀데, 리눅스 환경을 구축하기가 번거롭게 느껴지기 때문에 일단 도커에서 제공하는 Docker for Windows를 설치할꺼다. Docker for Windows는 Hyper-v를 이용해 가상환경을 제공한다. Hyper-v 기능을 켜줘야 한다. Hyper-v는 64bit 윈도우 10 Pro, Enterprise에서 지원한다. 윈도우 10 하이퍼-v 켜는 방법 : lifesupportloopy.tistory.com/15 Hyper-v를 켰으면 아래 링크에서 Docker for Windows 설치 파일을 stable버전으로 다운로드 받는다. Docker for Windows 다운로드 링크 : hub.docker.com/editions/c.. 2020. 9. 18.
[자바의 신] 변수 하나에 여러 개의 데이터를 담을 수 없을까? 지금까지 봐온 기본 자료형 8가지(boolean, byte, short, int, long, char, float, double)는 하나의 값만 넣을수 있다. 하나의 변수에 여러개의 값을 넣을 수는 없을까? 가장 일반적인 자료구조중 하나로 '배열'이 있다. 배열은 한가지 타입에 대해서 하나의 변수에 여러개의 데이터를 넣을 수 있다. 배열은 다음과 같이 쓴다. int[] intArray = new int[10]; 또는 int[] intArray; intArray = new int[10]; 위와 같이 초기화 하면 0번방 부터 9번방 까지 총 10칸짜리 int 형태의 방이 생긴다고 생각하면 된다. 명심할 것은 0번방 부터라는것! 0번 방 1번 방 2번 방 3번 방 4번 방 5번 방 6번 방 7번 방 8번 방 .. 2020. 9. 15.
[자바의 신] 연산자? 자바에는 여러가지 종류의 연산자가 있다. 기본연산자 복합 대입 연산자 단항 연산자 비교 연산자 논리 연산자 삼항 연산자 비트 연산자(추후 업데이트) instanceof(추후 업데이트) 1. 기본 연산자 기본 연산자는 boolean을 제외한 기본 자료형을 더하거나 빼는 등의 계산을 위해 사용한다. 참조 자료형은 기본적으로 연산자를 사용할 수 없지만, 예외적으로 String클래스만 + 연산이 가능하다. 대입 연산자(=) int a = 3; 왼쪽의 변수에 오른쪽의 값을 할당(대입)할때 사용. 기본 연산자(+, -, *, /, %) +, - : 양쪽의 값을 더하거나 뺀다. *, / : 양쪽의 값을 곱하거나 나눈다. % : 왼쪽의 값을 오른쪽의 값으로 나눈 나머지 구한다. public class BasicOper.. 2020. 9. 14.
[자바의 신] 자료형이 뭐죠? 우리가 변수를 생성할때 int, String, Bicycle 등등 앞에 붙이는 단어들은 어떤 의미가 있을까? 이 단어들은 해당 변수의 자료형(타입)을 나타낸다. 자바의 자료형(타입)은 크게보면 2가지가 있다. 1. 기본 자료형 2. 참조 자료형 기본자료형과 참조 자료형의 차이는 변수를 초기화 할 때 나타난다. 변수를 초기화 할때, 기본자료형은 new 키워드없이 바로 초기화가 가능하지만, 참조 자료형은 new 키워드와 생성자를 사용한다. 단, String클래스의 경우에는 참조 자료형임에도 new 키워드 없이 초기화 할 수 있다. // 기본자료형의 변수 초기화 int variable = 10; // 참조자료형의 변수 초기화 Bicycle bicycle = new Bicycle(); // 예외 String S.. 2020. 9. 10.
[자바의 신] 변수에도 이름이 있다? 솔직히 매일같이 코드를 치고, 보면서 변수에 이름이 있는줄 몰랐다.. 너무 쉽게쉽게 지나쳐서 그랬나? 자바에는 네가지 변수가 있다. 네가지 변수는 그 용도와 생명주기에 따라서 이름이 다르다. '자바의 신' 책에서 아주 이해하기 쉬운 코드가 있어서 가져왔다. public class 클래스 { int 인스턴스_변수; static int 클래스_변수; public void method(int 매개_변수) { int 지역_변수; Bicycle 지역_변수2 = new Bicycle(); } } 위 예제 하나면 각 변수들의 위치와 생김새를 한번에 이해할수 있다. 아름답다. 그럼 위 코드를 토대로 하나씩 보자. 1. 지역변수 - 메소드안에 선언된 변수 - 메소드 안에서만 유효함. 2. 매개변수 - 메소드를 호출할때 .. 2020. 9. 10.
[자바의 신] 클래스와 객체는 같은건가? 소스코드 - github.com/jeong-woon/TIL/blob/master/godofjava/Bicycle.java - github.com/jeong-woon/TIL/blob/master/godofjava/BicycleFactory.java 지난 글에서 현실세계의 사물(또는 추상적 개념)을 객체지향 프로그램에서 사용하는 객체로 만들기위해 클래스로 만드는 방법을 학습했다. 그러면, 클래스와 객체는 같은걸까? 결론적으로 클래스는 객체가 아니다. 아래 그림을 보자. 자전거 공장에서 자전거를 만들때, 자전거 설계도(A)를 보고 자전거(B)를 만들 것이다. 이 때, A가 클래스에 해당하고, B가 객체(혹은 인스턴스)에 해당한다. 결국 클래스는 객체를 만들기 위한 설계도라고 할 수 있다. 사실 클래스는 그 자.. 2020. 9. 9.
[자바의 신] 객체? 클래스? 메소드? 자바는 객체지향 프로그래밍 언어다. 너무 많이 들어본 말인데, 너무 많은 의미를 숨기고 있다는 느낌이 든다. 객체가 뭐지? - 객체는 현실에 있는 사물(자동차, 스마트폰, 책 등) 또는 추상적 개념(강의, 회원 등)들 모두 '객체(Object)'이다. 객체지향 프로그래밍? 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. - 위키백과, 객체 지향 프로그래밍 다시 말해, 자바는 프로그램을 '객체'들의 상호작용으로 본다. 그러면, 자바는 현실세계의 객체를 어떻게 프로그램으로 가져올까? 클래스? 클래스(class)는 자바의 가장 작은 단위이다. 자바는 현실세계의 객체들.. 2020. 9. 3.
[java] OracleJDK 11 설치 몇해 전부터 자바 유료화에 대한 논쟁이 있었는데, 인프런에서 백기선님 강의를 들으면서 정확히 알게된 부분이 있다. 오라클에서 만든 OracleJDK 11버전부터 상용으로 사용할 경우 유료. 자바라는 언어가 유료라는 말이 절대 아니고, 위의 조건들을 모두 만족할 경우 "JDK(Java Development Kit)"를 쓰는게 유료라는 말이다. JDK를 자세히 보면, JRE + 개발툴(javadoc, javap, javac 등등)을 포함하고, JRE는 JVM + 필수 라이브러리(rt.jar와 같은) 이다. 예를 들어서, OracleJDK11을 쓰고 있지만, 상용으로 사용하지 않으면 유료가 아니다. 반대로 JAVA로 개발 자체를 안하고, 코틀린을 쓰더라도, OracleJDK 11의 JVM을 상용으로 쓰면 유료.. 2020. 9. 3.
[자바의 신] 프로그래밍이 뭐죠? 자바의 신을 읽고 자바를 제대로 학습해보려고 마음 먹었다. 언제까지 갈까 싶지만, 열심히 해보자. 프로그래밍이 뭘까? 자바의 신에서 프로그래밍을 '아이가 아빠에게 신호를 보내 원하는 것을 얻는것' 에 비유하고 있다. 너무 공감했다. 독자님들은 아이가 있는지 모르겠다. 아들이 하나 있는데, 걸핏하면 운다. 일어나면 울고, 혼자 있다가 울고, 누워있다가 울고, 엎드려있다가 운다. 배고프다고 울고, 똥 쌋다고 울고, 아무튼 운다. 그럼 나는 생각한다. 이 신호는 뭘 원하는 걸까? 밥? 기저귀? 잠? 해석을 마치면, 울음을 멈추기 위해 움직인다. 프로그래밍도 이와 같다. 아이가 아빠에게 원하는 것을 알려주는 신호를 주면, 아빠가 그것을 해주기 위해 움직이는 것처럼. 내가 컴퓨터에게 할일을 가르치면, 컴퓨터가 그.. 2020. 9. 3.
[ES6] WeakMap //MAP, WEAKMAP //자바스크립트에서자료를 ARRAY, OBJECT 로 처리 // 배열을 조금더 개선한 자료구조가 SET, OBJECT를 개선한 자료구조가 MAP이라고 볼수 있다. 특정용도로 쓸수 있도록 //MAP과 SET의 차이 - 맵은 키와 밸류 구조이다. 어떤 객체만 저장하지 않고, 그 객체에 대한 부연설명들, 딸린 자식들, 추가정보를 같이 보관할때 유용하다. // 키값에 객체 저장 //WEAKMAP let wm = new WeakMap(); let myfunc = function(){}// 이 함수가 몇번 실행됐는지 알려고 할때 wm.set(myfunc, 0); let count = 0;for (let i=0 ; i 2019. 3. 27.
[ES6] WeakSet // // set과의 차이는?// 참조를 가지고 있는 객체만 저장이 가능하다. let arr = [1,2,3,4];let ws = new WeakSet(); ws.add(arr);// ws.add(111); // invalid type// ws.add("111"); // invalid type// ws.add(null); // invalid type// ws.add(function(){}) //유효함console.log(ws); //만약 객체가 널이되거나 필요가 없어지면 가비지 컬렉션 대상이 됩니다. 위크셋에서도 없어진다. 참조를 모니터링 한다고 봐야함. let array1 = [1,2,3,4];let array2 = [5,6,7,8];let obj = [arr, arr2];let weakset = ne.. 2019. 3. 27.