전체 글
-
Firefox Java Coding StyleJava & Kotlin 2020. 6. 13. 17:38
안녕하세요 오늘은 파이어폭스(Firefox) 회사인 모질라 재단이 정의한 자바 코딩 스타일(Java Coding Style)에 대해서 공부해보려고 하는데요. "깔끔한 코드"란 과연 무엇일까라는 고민을 한 적이 있습니다. 흔히 말하는 "있을 곳에 있는 코드", "누구나 읽었을 때 어색함이 없는 가독성" 일 것 같습니다. 그래서 영향력 있는 회사들은 어떻게 작성하는 코드가 읽기 쉽고, 깔끔하다고 정의하고 있을까 궁금해서 시작했습니다. 사실 코딩 스타일은 각 회사별로 다릅니다. 왜냐하면 사람마다 코딩하는 스타일도 다르고, "좋은 코드"에 대한 의견도 다릅니다. 그렇게 수많은 다른 사람들이 모인 회사에서, 각자 원하는 대로 코드를 치면 프로그램 전체의 코드 스타일이 재각각이 될 것입니다. 책 한 권을 만드는데,..
-
깃헙에 소개된 내 글Contribution 2020. 6. 8. 15:59
https://github.com/Integerous/goQuality-dev-contents#mailbox-queue Integerous/goQuality-dev-contents { 고퀄리티 :zap: 개발 컨텐츠 모음 }. Contribute to Integerous/goQuality-dev-contents development by creating an account on GitHub. github.com 고퀄리티 개발 컨텐츠라는 주제로 운영되는 깃허브에 제 글이 올라왔습니다! 감사합니당
-
왜 JVM이 필요할까?JVM 2020. 6. 6. 18:49
누군가 저에게 물었습니다. "어차피 JVM도 C로 만들어진 가상 머신인데, 처음부터 C처럼 바로 기계어로 컴파일해주면 되지 않나요? 왜 굳이 속도 저하를 가지면서 두 번의 과정을 거쳐야 하죠?" 답변을 하려고 생각을 해보니 꽤 타당한 이야기입니다. 뭔가 설득당할 것 같습니다. 혼자서 나름대로 오랜 시간 고민을 해보고, 정리한 내용들입니다. 1. History of Java 모든 것을 설명하기 전에 자바의 유래에 대해서 알아보려고 합니다. 모든 것의 뿌리는 중요합니다. 아무리 변형이 일어나도, 근본이 되는 진리는 변하지 않습니다. 자바는 James Gosling이라는 캐나다의 개발자에 의해서 만들어졌습니다. 자바의 역사를 보면 지겹도록 나오는 말이 "Write once, Read anywhere"입니다. ..
-
[Java]초기화란?Java & Kotlin 2020. 5. 30. 18:14
문득 "초기화"가 뭘까라는 생각이 들었습니다. 우리가 공유기를 사용하다가 잘 안될 때 "초기화"를 하고는 합니다. 그때 일반적으로 드는 생각은 뭔가 설정이 가득 쌓여있다가 싹 사라지고, 초기 설정으로 돌아가는 느낌이 듭니다. 하지만 왜 초기화하는 걸까요? 애초에 넣은 값이 없는데, 뭘 다시 되돌리는 걸까요? 뭐가 있어야 처음으로 돌아갈 값도 있는 것 아닐까요? Intialization (초기화)의 사전적 의미 영어로는 "Initialization" 입니다. 구글 사전에 의하면 "작업을 시작하기 위해서 값을 설정하거나 넣는 것, 포맷(컴퓨터 디스크)"이라는 뜻 이라고 합니다. 엥? 뭔가 되돌리는 느낌이랑 완전 반대입니다. 애초에 아무것도 없기 때문에 뭔가 넣어주는 느낌입니다. 위키피디아에서 좀 더 알아보겠..
-
[오픈소스 기여]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); } } 자바의 정..