JAVA

💡 해당 글은 『스프링 입문을 위한 자바 객체지향의 원리와 이해』 도서를 학습하며 도서의 내용을 참고하여 본인의 언어로 표현한 글입니다. 객체지향에 대해서는 여러번 반복적으로 학습하고 이해하고 있지만, 중요한 개념이기 때문에 간단하게 복습겸 정리하고 넘어가고자 한다. ☁️ 객체 지향은 인간 지향이다. 객체 지향이란 무엇인가? 현실 세계에서의 사물을 프로그램으로 나타낸 것이라고들 많이 표현한다. 이전의 어셈블리어, 기계어와는 다르게 인간에게 초점이 맞추어진 프로그래밍 방법론이다. 객체의 특성은 아래와 같다. 각각의 객체는 고유하다. 객체는 상태(프로퍼티, 필드, …)와 행위(메서드)를 가진다. 사람은 클래스인가 객체인가? 김연아는? 뽀로로는? 펭귄은? 사람은 실체가 아닌 개념이다. 사람 자체가 고유하지 않..
· JAVA
float와 double 타입은 과학과 공학 계산용으로 설계되었다. 이전 부동소수점 연산에 쓰이며, 넓은 범위의 수를 빠르게 정밀한 ‘근사치’로 계산하도록 설계되었다. 따라서 정확한 결과가 필요할 때는 사용하면 안 된다. float와 double 타입은 특히 금융 관련 계산과는 맞지 않는다. 0.1 혹은 10의 음의 거듭 제곱 수를 표현할 수 없기 때문이다. - Effective Java Item. 60 float와 double 타입은 각각 4바이트 와 8바이트의 메모리 크기를 가지는 타입이다. float: 1개의 부호, 8개의 지수, 23개의 소수 비트를 가진다. double: 1개의 부호, 11개의 지수, 52개의 소수 비트를 가진다. 즉, 제한된 메모리 내에서 소수를 표현해야 하기 때문에 특정 소수..
💡 해당 글은 『스프링 입문을 위한 자바 객체지향의 원리와 이해』 도서를 학습하며 도서의 내용을 참고하여 본인의 언어로 표현한 글입니다. JDK, JRE, JVM JDK: 자바를 개발할 수 있는 도구, 자바 파일을 작성하고 컴파일하며, 실행할 수 있다. JRE를 포함 JRE: 컴파일된 바이트코드를 실행시키기 위한 환경, JVM을 위한 OS라고 생각할 수 있다. JVM을 포함 JVM: 자바 코드를 실행시키기 위한 가상의 컴퓨터, JRE위에서 동작한다. JDK는 자바 소스 컴파일러인 javac를 포함하고 JRE는 자바 프로그램 실행기인 java.exe를 포함한다. 자바는 왜 이러한 구조를 채택했을까? 기존에는 어떤 불편함이 있었을까? 기존에는 각 OS마다 배포를 위한 설치 파일이 필요했다. 즉, 내가 작성한..
💡 해당 글은 『스프링 입문을 위한 자바 객체지향의 원리와 이해』 도서를 학습하며 도서의 내용을 참고하여 본인의 언어로 표현한 글입니다. ☁️ 기술의 이전 스프링을 비롯한 모든 신기술은 갑자기 하늘에서 뚝 떨어진 것이 아니다. 이전 기술의 어깨를 디딤돌 삼아 그 위에 이전 기술이 제시한 철학과 기법을 정반합의 논리로 정제하고, 이전 기술을 거름삼아 새로운 철학과 기법을 더해 나타나는 것이다. - 자바 객체지향의 원리와 이해 17p. 우리는 스프링 프레임워크를 이해하고 사용하기 위해서 스프링 이전에 어떠한 기술들이 존재했고, 어떤 불편함을 딛고, 어떻게 발전했는지 알아야 한다. 기계어 기계어는 CPU가 이해할 수 있는 0과 1로 이루어진 언어를 의미한다. 컴퓨터는 0과 1밖에 이해하지 못한다. 최초의 프로..
💡 해당 글은 『자바의 신 3판』을 복습하며 도서의 내용과 본인의 주관적인 생각을 정리한 글입니다. ☁️ 내용정리 네트워크 프로그래밍 애플리케이션 계층은 OSI 7 layer의 최상단에 위치한다. 애플리케이션 계층의 대표적인 HTTP, FTP, Telnet 들은 모두 TCP 통신을 한다. 우리가 자바로 TCP 통신을 하고싶다면 자바에서 제공하는 API를 사용하면 된다. TCP는 3-Way-hashShake를 통해 상대방이 데이터를 받았는지를 확실히 보장할 수 있다. 전송 제어 프로토콜(Transmission Control Protocol, TCP)은 인터넷 프로토콜 스위트(IP)의 핵심 프로토콜 중 하나로, IP와 함께 TCP/IP라는 명칭으로도 널리 불린다. - 위키피디아 TCP는 안정성을 제공하지만 ..
💡 해당 글은 『자바의 신 3판』을 복습하며 도서의 내용과 본인의 주관적인 생각을 정리한 글입니다. ☁️ 내용정리 Serializable public interface Serializable { } Serializable 인터페이스는 선언된 변수나 메서드가 하나도 없다. 웹 서버를 개발하다보면 생성한 객체를 파일로 저장하거나, 읽는 경우, 해당 객체를 다른 서버로 전송하거 받는 경우가 생긴다. 이럴 때 Serializable 인터페이스를 사용한다. static final long serialVersionUID = 1L; // String @java.io.Serial private static final long serialVersionUID = -6849794470754667710L; serialVers..
💡 해당 글은 『자바의 신 3판』을 복습하며 도서의 내용과 본인의 주관적인 생각을 정리한 글입니다. ☁️ 내용정리 I/O I/O는 Input/Output의 약어이다. 우리가 만든 프로그램의 어떠 내용을 파일에 쓰거나 저장할 일이 있을 때, 다른 서버나 디바이스로 보낼 일이 있을 때 사용한다. 여기서 서버는 DB서버, 웹 서버 등이 될 수 있다. Input Output은 JVM기준이다. (JVM이 읽는 것은 Input, JVM이 쓰거나 외부로 전송하는 것은 Output) 자바 초기 단계에서는 IO를 처리하기 위해 java.io 패키지에 있는 클래스만을 제공했다. java.io 패키지는 바이트 기반의 데이터를 처리하기 위해 여러 종류의 스트림(Stream)을 제공하는데 Stream은 단방향 통신으로 입력과 ..
💡 해당 글은 『자바의 신 3판』을 복습하며 도서의 내용과 본인의 주관적인 생각을 정리한 글입니다. ☁️ 내용정리 Thread Thread란 프로세스 내에서 독립적으로 작업을 수행하는 실행 단위이다. 스레드가 왜 만들어졌을까? 만약 모든 프로세스가 하나의 작업을 수행할 수 있었다면 어땠을까? 프로세스는 많은 자원을 소모하는 실행 단위이다. 만약 하나의 작업을 동시에 수행하려고 할 때, 스레드가 없다면 여러 개의 프로세스를 띄워 실행해야 할 것이다. JVM은 기본적으로 아무런 옵션 없이 실행하면 OS마다 다르지만, 적어도 32 ~ 64MB의 물리 메모리를 점유한다. 그에 반해서, 쓰레드를 하나 추가하면 1MB 이내의 메모리를 점유한다. 그래서, 쓰레드를 “경량 프로세스”라고도 부른다. - 자바의 신 2권 ..
💡 해당 글은 『자바의 신 3판』을 복습하며 도서의 내용과 본인의 주관적인 생각을 정리한 글입니다. ☁️ 내용정리 Set public interface Set extends Collection All Superinterfaces: Collection, Iterable All Known Subinterfaces: EventSet, NavigableSet, SequencedSet, SortedSet All Known Implementing Classes: AbstractSet, ConcurrentHashMap.KeySetView, ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSe..
hyunsb
'JAVA' 카테고리의 글 목록 (2 Page)