분류 전체보기
-
[오픈소스 기여]MDN 문서 번역Contribution 2020. 5. 28. 19:36
오늘은 오픈소스 기여 경험에 대해서 말하려고 합니다. 사실 오픈소스 기여라고 표현하기에는 굉장히 창피합니다. 저는 평소에 파이어폭스로 유명한, 모질라 재단의 MDN 문서로 웹을 공부하는 것을 좋아합니다. 저는 복수전공으로 시작해서 전공지식이 부족한 상태이기에, MDN에서 기본적인 HTML, CSS 뿐만 아니라 네트워크, 서버쪽 지식까지 많은 도움을 받고 있습니다. 하지만 보다 보니 조금 어색한 부분이 있었습니다. "여기에서 여러분을 초보자에서 전문가로 이끄는 것을 목표로 하지 않습니다. 다만 여러분을 초보자에서 안정된 단계로 이끄는 것을 목표로 합니다." 여기서 "안정된 단계"라는 표현입니다. 원문을 찾아보니 "Beiginner to Comforable"라고 되어있습니다. 사실 영어 단어로 Comfort..
-
Java Memory Model(자바 메모리 모델)JVM 2020. 5. 27. 19:10
이번에는 Java Memory Model(자바 메모리 모델)에 대해서 공부해보겠습니다. 지난번에 작성한 JVM구조부터 메모리 모델까지는 자바를 사용하는 것에 있어서 굉장히 중요합니다. 단순히 언어의 클래스, 메서드 같은 것들을 많이 아는 것도 중요하지만, 이런 것들은 그때그때 검색하면 됩니다. 하지만 구조적인 것을 모른다면, 검색을 하더라도 이해도가 낮을 수도 있고, 전체적인 프로그램 설계를 하는 것에 있어 어려움을 겪을 수도 있습니다. 혹시나 JVM 구조에 대해서 잘 모르신다면, JVM Architecture란? 이 글을 먼저 보고 오셔야 합니다! JVM은 OS의 메모리의 사용권한을 할당받게 됩니다. 기본적으로 프로그램을 실행하려면 운영체제(OS)가 제어하고 있는 메모리를 제어할 수 있어야 합니다. C..
-
[Java]JVM Architecture란?JVM 2020. 5. 24. 17:17
JVM(Java Virtual Machine) "자바 가상 머신"이라고 불리는 JVM은 자바 프로그램을 실행하고, 다른 언어로 작성된 것도 자바 byte code로 컴파일하여 실행할 수 있기 위하여 만들어졌습니다. 자바의 작동 방식 자바는 기본적으로 "Write once, Run anywhere"의 정신으로 만들어졌습니다. 말 그대로 한 번 작성한 내용은, 어디서든지 읽고 실행될 수 있어야 한다는 말인데요. 흥미롭습니다. C++ 같은 경우에는 특정한 운영체제, 하드웨어에서 실행되기 위해서 컴파일되지만, 자바는 byte code로 컴파일됩니다. 이는 흔히 우리가 보는 .class 파일입니다. 이때 JDK에 포함되어 있는 자바 컴파일러(javac)를 사용하여 컴파일하게 됩니다. 이 Bytecode를 JVM은..
-
[JAVA]로또 번호 만들기(2), 제네릭개발 완료 2020. 5. 21. 12:15
Java 배열을 이용해서 로또번호 추첨 목적 로또 번호 만든다 제네릭을 사용해서 리팩토링 import java.util.*; public class Main { public static void main(String[] args) { Set set = new HashSet(); for (int i = 0; set.size() >> " + set); List list = new LinkedList(set); Collections.sort(list); System.out.println("list >>>> " + list); } } 자바의 정..
-
(JAVA)hasNext() vs next() 메서드 차이점?Java & Kotlin 2020. 5. 18. 20:37
정의 Iterator 인터페이스의 메서드로 자주 사용됩니다. Iterator에 추가적인 요소가 있을 때 가져오는 역할을 하는데요. 단순히 영어만 보면 조금 헷갈립니다. hasNext는 "뭔가 다음에 있으면 가져오는 것 같고", next는? "이것도 다음에 있으면 가져오는 것 아니야?"라고 생각할 수 있습니다. 다른 점 결정적으로 다른 점은 반환 타입 입니다. hasNext()는 boolean 타입으로 반환됩니다. 즉 "True or False"로 반환됩니다. 다음에 가져올 값이 있으면 True, 없으면 False입니다. 하지만 next()는 "매개변수 혹은 iterator 되는 타입"으로 반환됩니다. 즉 아무 타입으로 반환할 수 있습니다. Iterator에 입력된 값들이 String이면 String 값으..
-
[Java]Static 메서드란? 사용하는 이유Java & Kotlin 2020. 4. 18. 13:16
Static 단어의 정의 프로그래밍 언어는 안타깝게도 전부다 영어입니다. 그렇기 때문에 영어를 잘한다면 이해를 쉽게 할 수 있습니다. 움직임, 변화, 어떤 면에서 흥미가 떨어지게 바라보는 특정 기간, 시간(프로그래밍이 실행 중) 동안 변화할 수 없는 대충 감이 옵니다. 뭔가 움직이지 않고, 변하지도 않고 그대~로 있는 느낌입니다. 예제 코드 class remote { int a; // instance variable // instance method int channelUp() { return a + 1; } // used instance variable int channelDown() { return a - 1; } // static method static int channelUp2(int b) { ..
-
(Java)2차원 배열로 퀴즈 만들기개발 완료 2020. 4. 7. 13:44
(이 코드는 자바의 정석 기초 편을 활용했습니다) 목적 2차원 배열 사용 열(Row)에 질문, 정답을 넣는다 먼저 질문을 가지고 오고, 같은 열의 정답과 비교한다 추가적으로 제가 맞춘 정답의 확률을 가지고 왔습니다 코드 public class Main { public static void main(String[] args) { String[][] words = { {"chair", "의자"}, {"Computer", "컴퓨터"}, {"Integer", "정수"}, }; int total = 0; float avg = 0.0f; for (int i = 0; i < words.length; i++) { System.out.printf("Q%d. %s의 뜻은? ", i + 1, words[i][0]); Sca..
-