OOP(Object Oriented Programming 객체 프로그래밍) 정리
2022. 1. 24. 18:34
개발 지식/JAVA 기본 지식
객체지향 OOA(Object Oriented Analysis) : 객체 분석 OOD(Object Oriented Design) : 객체 설계 OOP(Object Oriented Programming) : 객체 프로그래밍 객체지향 키워드 클래스(Class) 오브젝트(Object) 캡슐화(Encapsulation) 상속성(Inheritance) 다형성(Polymorphism) 클래스(Class) 클래스(class) = 추상화(abstract) 클래스는 표현 대상의 특징에 대한 서술을 의미 (공통적인 특징을 서술) 추상은 사용자가 구체적인 내용을 생각하지 않고도 사용하는 기능 프로시져 추상화 : 함수 데이터 추상화 : 구조체, 배열, 포인터 attribute = data = member variables = ..
클래스 로더 (Class Loader)
2022. 1. 22. 20:37
개발 지식/JAVA 기본 지식
JVM의 클래스로더에 대해 조금 더 자세히 정리하려고 한다 JVM에서의 클래스 로더(Class Loader)의 역할 JAVA 컴파일러(javac)를 통해 변환된 Class 파일(바이트 코드)을 읽어서 메모리에 배치 클래스 로더 실행 순서 실행 순서는 로딩, 링크, 초기화 순으로 이루어 진다 로딩(Loading) .class 파일을 읽고 그 내용에 따라 적절한 바이너리 데이터를 만들고 메소드 영역에 저장 메소드 영역에 저장하는 데이터 종류 Class Interface Enum FQCN(Fully Qualified Class Name) (object, 함수, 변수의 계층적 구조를 모두 포함하여 표현하는 것. Java의 경우 클래스가 포함된 패키지를 의미함) String str = new String(); /..
매번 까먹는 JVM 정리
2022. 1. 22. 19:19
개발 지식/JAVA 기본 지식
매번 까먹는 것 같아서 생각난김에 정리해두려고 한다. JVM 이란? Java Virtual Machine 자바 가상 머신의 약자 Class 파일(자바 바이트 코드)을 OS에 특화된 코드로 변환하여 실행 (OS 환경에 구애받지 않고 재사용 가능하도록 중개 역할) GC(Garbage Collection)를 통해 메모리 관리 JAVA는 컴파일러 언어인데 JVM을 통해 인터프리터 방식으로 동작 JVM 기반 언어 Java, 클로저, 그루비, JRuby, Jython, Kotlin, Scala 등등.. JVM 구조 JVM 실행 순서 OS로 부터 메모리를 할당 받음 JAVA 컴파일러(javac)를 통해 JAVA 파일을 Class 파일(바이트 코드)로 변환 클래스 로더 시스템을 통해 바이트 코드를 읽음 로딩: Clas..
String to Double Array (String -> Double[]) 변경
2021. 5. 26. 13:19
개발 지식/Memo
String str = "1.1,2.2,3.3,4.4,5.5,6.6,7.7"; double[] doubleArray = Arrays.stream(str.split(",")).mapToDouble(Double::parseDouble).toArray(); Double[] DoubleArray = Arrays.stream(str.split(",")).map(Double::valueOf).toArray(Double[]::new);
String to Int Array (String -> int[]) 변경
2021. 5. 26. 13:18
개발 지식/Memo
String str = "1,2,3,4,5,6,7"; int[] intArray = Arrays.stream(str.split(",")).mapToInt(Integer::parseInt).toArray(); Integer[] integerArray = Arrays.stream(str.split(",")).map(Integer::valueOf).toArray(Integer[]::new)
HTTP 메시지 구조
2021. 1. 30. 20:18
개발 지식/WEB 기본 지식
HTTP 메시지는 요청 메시지와 응답 메시지의 내용이 조금 다르다. 우선 HTTP 메시지의 구성을 살펴보자 HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ] CRLF는 엔터를 의미 tools.ietf.org/html/rfc7230#section-3 HTTP 1.1의 공식 스펙을 확인해보면 위와 같은 형식으로 이루어진다고 기술되어 있다. HTTP 메시지 구조는 크게 4가지로 나눌 수 있다 - start-line : 시작 라인 - *( header-field CRLF ) : 헤더 - CRLF : 공백 라인 - [ message-body ] : 내용 start-line (요청 메시지) 요청 메시지에서 start-line = reque..
Stateful, Stateless (상태유지, 무상태)
2021. 1. 30. 19:29
개발 지식/WEB 기본 지식
Stateful (상태유지) 서버에서 클라이언트의 상태를 유지(기억)하고 응답 - 항상 같은 서버를 통해서 응답받아야 한다. - 만약 서버에 장애가 생겨서 다른 서버를 통해 작업을 수행하려고 한다면, 다시 처음부터 수행해야한다. (새로운 서버에는 유지하고있는 값이 없기 때문에) 로그인 등의 작업에 많이 사용 Stateless (무상태) 서버에서 클라이언트의 상태를 유지(기억)하지 않음 - 클라이언트에서 요청할 때 모든정보를 담아서 서버로 요청한다. - 모든정보를 매번 다시 받기때문에 중간에 서버가 장애가 나서 다른 서버를 통해 작업을 수행해도 모두 처리할 수 있다. 수평확장에 유리 (즉, 필요에 따라 서버 무한 증설이 가능) 실무에서의 한계점 설명처럼 모든곳에서 Stateless (무상태)를 사용하도록 ..
[jQuery] 마우스 우클릭 이벤트
2021. 1. 28. 19:11
개발 지식/Etc.
특정 영역에서만 우클릭 이벤트를 발생시키고 싶어서 event 함수를 적용해서 처리했다. 또 사용할 것 같은 기능이라 정리! CSS .custom-menu { display: none; z-index: 1000; position: absolute; overflow: hidden; border: 1px solid #CCC; white-space: nowrap; font-family: sans-serif; background: #FFF; color: #333; border-radius: 5px; margin:0; padding:0; } .custom-menu li { padding: 8px 12px; cursor: pointer; } .custom-menu li:hover { background-color: ..
웹 브라우저 요청 흐름
2021. 1. 24. 15:11
개발 지식/WEB 기본 지식
웹 브라우저 요청 흐름 주소창에 URI를 통해 접근했을 경우 동작하는 흐름을 간단히 알아보자면 1. DNS, Port 조회 2. 웹브라우저가 HTTP 요청 메시지를 생성 3. Socket 라이브러리를 통해 전달 (TCP 3 way handshake) 4. TCP/IP 패킷 생성 5. 네트워크망을 통해 전달 6. 전달받은 서버에서 TCP/IP 패킷을 제거하여 HTTP 요청 메시지 확인 7. HTTP 응답 메시지를 생성 후 전달 HTTP 요청 메시지 ex) www.google.com/search?q=통개발&hl=ko GET /search?q=통개발&hl=ko HTTP/1.1 Host: www.google.com 이런 방식으로 생성된 메시지를 TCP/IP 패킷으로 감싼다고 생각하면 된다. 2021/01/17 ..
TCP, UDP
2021. 1. 17. 15:57
개발 지식/WEB 기본 지식
TCP TCP/IP 이전 게시물에서 설명했던 IP 프로토콜의 한계점인 - 데이터 유실과 손실에 대한 정보를 알 수 없는 점 - 보낸 순서대로 도착하지 않는 점 2021/01/13 - [WEB 기본 지식] - IP(인터넷 프로토콜) 2가지를 해결할 수 있는 방법 중 하나가 TCP 프로토콜을 사용하는 것이다. (UDP 로도 일부 해결됨) IP 프로토콜의 패킷 구조가 출발지 IP, 목적지 IP, 내용이었다면, 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등을 담은 TCP 세그먼트를 함께 사용하여 문제점을 보안할 수 있다. TCP 특징 - 연결 지향 (TCP 3 way handshake를 통한 가상 연결) - 데이터 전달 보증 (패킷 누락 정보 확인 가능) - 순서 보장 TCP 3 way ..