전체 글 (113) 썸네일형 리스트형 [Java] 제네릭 학습할 것 (필수) 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 참고자료 http://www.tcpschool.com/java/java_generic_concept https://devlog-wjdrbs96.tistory.com/201 제너릭이란? 자바에서 제네릭이란 데이터의 타입을 일반화한다는 것을 의미한다. 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 컴파일에 미리 타입 검사를 수행하면 다음과 같은 장점을 얻을 수 있다. 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있다. 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있다. JDK 1.5 이전에는 여러 타입을.. 2023. 12. 4. 16:44 [Java] I/O 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 참고자료 https://www.geeksforgeeks.org/java-io-tutorial/ https://stackoverflow.com/questions/39550670/java-difference-between-streams-and-i-o-stream-explained https://byul91oh.tistory.com/267 https://homoefficio.github.io/2016/08/06/Java-NIO는-.. 2023. 12. 4. 15:19 [Java] 애노테이션 학습할 것 (필수) 애노테이션 정의하는 방법 @Retention @Target @Documented 애노테이션 프로세서 참고자료 https://jake-seo-dev.tistory.com/67 https://www.geeksforgeeks.org/annotations-in-java/ geeksforgeeks.org/java-target-annotations/ https://www.geeksforgeeks.org/java-documented-annotations/ https://www.javatpoint.com/java-annotation 애노테이션의 이점 Compiler instructions : 컴파일러에게 명령을 내릴 수 있다. 예를 들어 에러 또는 warning 을 감지하도록 할 수 있다. @Dep.. 2023. 12. 4. 10:48 [Java] 클래스로더 이해하기 클래스 로더의 가장 기본적인 역할은, 클래스 파일(*.class)을 읽어들여, JVM이 클래스를 활용할 수 있게 도움주는 것이다. 처음 JVM을 공부할 때는 단순하게 위와 같이 이해하였다. 그러나, 파고들수록 궁금한 것들 생겨났다. 클래스 로더는 ClassLoader 클래스의 하위클래스라고 하던데, 태초의 ClassLoader 클래스는 누가 JVM에 적재해두는 것일까? Enum 클래스는 싱글톤 패턴으로 동작한다고 하는데, 이때 클래스 로더가 도와준다고 한다. 어떻게 도와주는 것일까? 클래스 로더는 synchronized하게 동작한다는데, 그 말인 즉슨, 클래스 파일을 Load할때도 synchronized하다는 것을 의미할 것이다. 어떻게 구현했을까? 위 질문을 해결해줄 내용들을 정리하였다. JVM Sta.. 2023. 12. 1. 23:03 [Java] Interface는 어떻게 Object 클래스의 메소드를 사용할 수 있을까? 이번 글은 위 질문에 대한 검증을 위해 작성하였다. stackoverflow에 위 질문을 검색하면 많은 답변이 나온다. 답변 내용은 다음과 같다, JLS(Java Language Spec)에서는, 인터페이스가 상위 인터페이스를 상속받지 않고 독립적인 인터페이스라면, 암묵적으로 Object의 public instance method를 인터페이스의 public abstract method로 추가해준다고 한다. JLS - 9.2 Interface Members If an interface has no direct superinterfaces, then the interface implicitly declares a public abstract member method m with signature s, ret.. 2023. 11. 30. 18:19 [Java] ClassFile 포맷 자바 클래스 파일 포맷 출처 : https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf (4. The class File Format) class 파일은 다음과 같은 구조를 갖는다. u1, u2, u4 는 각각 1B, 2B, 4B 를 의미함. ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fiel.. 2023. 11. 30. 14:59 [Java] 멀티쓰레드 프로그래밍 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위와 의미 Main 쓰레드 동기화 데드락 참고자료 https://docs.oracle.com/javase/tutorial/essential/concurrency/simple.html https://www.geeksforgeeks.org/lifecycle-and-states-of-a-thread-in-java/ https://www.baeldung.com/java-thread-priority https://javagoal.com/thread-creation-in-java/ https://javagoal.com/main-thread-in-java/ https://charles098.tistory.com/99 Th.. 2023. 11. 28. 21:29 [Java] 예외 처리 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 참고자료 https://docs.oracle.com/javase/tutorial/essential/exceptions/creating.html https://www.baeldung.com/java-new-custom-exception 예외처리에 대해 학습하기 전에, 근본적으로 예외처리(Exception)이 가져다주는 이점이 무엇인지 알아보자 (아래 코드들은 자바 공식문서에서 참조한 코드입니다.) 에러처리를 위한 코드를 일반 코드와 분리시킨.. 2023. 11. 28. 20:19 [Java] 인터페이스 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스는 Object인가? 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스란? 추상적인 표현을 사용해 클래스의 행동을 정의해 놓는 녀석이다. 클래스의 청사진이라고 할 수 있다. 인터페이스는 abstract methods와 variables를 가지고 있을 수 있다. 그러나 메소드의 바디는 가질 수 없다. 인터페이스는 일종의 계약이다. 여러 개발자들이 작업을 수행할 때, 다른 개발자의 코드가 완성될 때까지 기다릴 수 없다. 또한, 다른 개발자가 어떻게 개발했는지 모.. 2023. 11. 28. 17:44 [Java] 패키지 학습할 것 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 classpath 옵션 접근지시자 package 키워드 package의 정의 패키지는 서로 연관된 타입들에 대해서 그룹화하여 접근을 제어하고 네임스페이스를 관리하도록 한다. 이때 타입들은 클래스, 인터페이스, ENUM, 어노테이션을 의미한다. 패키지를 사용하므로서, 클래스 이름이 중복되어 발생하는 문제를 방지할 수 있으며, 다른 패키지에서 해당 패키지에 요소들에 대해 접근하는 것을 제어할 수 있다. 패키지를 사용하는 이유 패키지에 속한 요소들이 서로 연관되있음을 쉽게 알 수 있다. 연관된 함수들이 어느곳에 위치하는 지 알 수 있다. 패키지는 새로운 네임스페이스를 생성하기 때문에 다른 패키지에 속한 요소들과의 name.. 2023. 11. 28. 16:00 [채용] FAANG + 몰두센 + 네카라쿠배당토 채용공고 정리 개인적으로 시간을 내어 채용공고(Backend or Software engineer)를 정리하는 도중, 정리한 내용을 블로그에 공유하면 다른 분들에게 도움이 될 것 같아 공유드립니다. 노션 링크 : https://rigorous-lettuce-47e.notion.site/078830ab1171475c93355a5364929ad0?pvs=4 기업 채용요건 분석 해외 Top Tech 회사(ex. FAANG + a) rigorous-lettuce-47e.notion.site 2023. 11. 27. 16:46 [책 서평] 레버리지 레버리지 저자 롭 무어 이 책은 ‘지렛대 원리’를 이용하여 부를 창출하는 방법을 알려주는 책이다. 저자는 영국에서 가장 빠르게 백만장자가 된 30대이며 부동산 교육 회사를 운영 중이다. 저자는 모든 일에 열심히 하는 사람들을 비판한다. 중요하지 않은 일에 집중하면 삶의 소중한 것들을 할 시간을 잃을뿐더러 돈의 노예가 될 수 있음을 주장한다. 저자는 자신에게 덜 가치 있는 일을 다른 이들에게 시키고, 자신은 중요한 일을 처리해야 한다고 주장한다. 그리고 이를 ‘레버리지 한다’라고 표현한다. 이는 최소의 노력으로 최대의 결과물을 창출하는 방법이라고 저자는 말한다. 필자는 처음 이 책을 접했을 때 제목을 보고 경제학 서적인 줄 알았다. 그러나 이 책은 경제와 관련된 내용은 극소수이고 대부분이 ‘레버리지’와 관.. 2023. 11. 22. 13:33 [책 서평] 난장이가 쏘아 올린 작은 공 난장이가 쏘아올린 작은 공 저자 조세희 이 책은 산업화로 인한 계층 간에 갈등을 다룬 소설이다. 저자는 ‘조세희’작가이며 이 책은 그의 소설들을 엮은 연작소설이다. 난장이의 가족들을 중심으로 이야기가 구성된다. 이 가족은 재개발로 인해 자신들의 터전을 잃고 은강으로 떠난다. 난장이의 세 자녀는 그곳에서 불합리한 대우를 받으며 일하는데 장남인 영수는 노동자들의 인권을 되찾기 위해 노조를 이끈다. 필자는 유년시절 시화 공단지역에서 살았다. 걸어서 10분 거리에 공장들이 있었다. 그래서 그런지 은강에서 벌어지는 사건들이 어린 시절 집 주변에 풍경과 겹쳐졌다. 물론 소설의 배경 시대보다 현재 공장 노동자들에 대한 대우는 많이 나아졌다. 그렇지만 아직까지 인간을 공장의 부품으로 취급하는 분위기는 바뀌지 않은 듯하.. 2023. 11. 21. 21:40 [책 서평] 우리가 몰랐던 대한민국 외교 이야기 그동안 우리가 몰랐던 대한민국 외교 이야기 저자 박수길 이 책은 ‘박수길’ 대사가 외교관을 하며 겪은 일들을 저술한 책이다. 저자는 40여 년간 외교관으로 근무했으며 유엔 안보리 의장, 유엔 인권소위원회 위원, 유엔 사무총장 자문위원으로 활동했었다. 저자는 동양의 변방국가로 취급받던 1960년대부터 경제대국이 된 2014년 까지의 외교 변화 과정을 설명하고, 외교관의 일이 국가 번영에 어떻게 힘을 실어주는지 알려준다. 필자는 저자가 LA총영사관에서 근무하던 시절의 이야기가 가장 인상 깊었다. 저자는 당시 LA교민협회 회장과 관련한 업무를 받았다. 그런데 회장이 건넨 서류에 문제가 있어 저자는 서류에 결재를 하지 않았다. 회장은 이에 격분하여 저자의 윗사람인 총영사에게 따지러 가지만 총영사는 그를 다시 돌.. 2023. 11. 21. 21:37 이전 1 ··· 3 4 5 6 7 8 9 다음