전체 글

하면 하는거지 모! 또 다시 하면되지 모! 그냥 하는거지 모!
자바 프로그램의 개발과 구동 현실 세계 가상 세계(자바 월드) 소프트웨어 개발 도구 JDK - 자바 개발 도구 JVM용 소프르웨어 개발 도구 운영체제 JRE - 자바 실행 환경 JVM용 OS 하드웨어 - 물리적 컴퓨터 JVM - 자바 가상 기계 가상의 컴퓨터 JDK < JRE < JVM Write Once Run Everywhere JVM이 중재자로서 각 플랫폼(윈도우, 유닉스, 리눅스 등)에서 프로그램을 구동하게끔 해줌 기계어를 포함한 모든 프로그래밍 언어의 메모리 사용 방식 코드 실행 영역 데이터 저장 영역 객체지향 프로그래밍 언어의 메모리 사용 방식 코드 실행 영역 스태틱 (static) 영역 스택 (stack) 영역 힙(Heap) 영역 자바에 존재하는 절차적 / 구조적 프로그래밍의 유산 함수 -..
스프링을 이해하기 위한 이전의 기술 SOA (Service Oriented Architecture) - 서비스 지향구조 CBD (Component Based Development) - 컴포넌트 기반 개발 OOP (Object Oriented Programming) 절자적 / 구조적 프로그래밍 기계어 / 어셈블리어 기계어 -> 객체지향 프로그래밍 언어로 0과 1의 행진 (에드삭, 유니박) 애드삭 전욕, 유니박 전용 기계어가 필요하며 호환이 불가능 어셈블리어 인간지향적 니모닉 (add, plus)과 기계어의 일대일 코드 매칭표 cpu별 어셈블리어 필요 C언어 - 강력한 이식성 one source multi object use anywhere 컴파일러로 cpu별 소스 번역 그러나 컴파일전 기종에 맞게 소스 변..
트랜잭션 이란? 트랜잭션이란 더 이상 쪼갤 수 없는 최소 단위의 작업을 뜻하는 개념으로, 트랜잭션 경계 안에서 진행된 작업은 commit()을 통해 모두 성공하던지, 아니면 rollback()을 통해 모두 취소돼야 함 전파 옵션 (propagation) 보통 하나의 메서드에서 하나의 트랜잭션을 사용하는데, 하나의 메서드에서 여러가지 트랜잭션을 사용할 경우 어떻게 처리할지 결정하는 옵션이다. REQUIRED : 부모 트랜잭션 내에서 실행하고 만약 부모 트랜잭션이 없을 경우 새로운 트랜잭션을 생성한다 REQUIRES_NEW : 부모 트랜잭션을 무시하고 무조건 새로운 트랜잭션을 생성 SUPPORT : 부모 트랜잭션 내에서 실행하며 부모 트랜잭션이 없을 경우 nontransactionally로 실행한다 MAND..
· 네트워크
Goal 3-way handshake에 대해 알아본다 4-way handshake에 대해 알아본다 TCP 란? TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스 이다. 3-way handshake 란 ? TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정(Connection Establish) 하는 과정 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달이 시작하기 전에 한 쪽이 다른 쪽이 준비되었다는 것을 알 수 있도록 한다. 즉, TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 ..
· 네트워크
Goal HTTP 동작과정을 알아본다 HTTPS의 동작과정을 알아본다 HTTP : HyperText Transfer Protocol 웹 상에서 클라이언트와 서버 간에 정보를 주고 받을 수 있는 프로토콜(웹 통신 규약) Point 웹브라우저에서 URL 입력 웹서버의 IP주소를 해석 TCP 커넥션 확립 HTTP 리퀘스트 전송과 HTTP 리스폰스 전송 서버 클라이언트 간 연결 종료 웹 브라우저가 웹 문서 출력 세부 동작 과정 웹브라우저에서 URL 입력 웹브라우저에 URL을 입력하거나 웹페이지 링크 클릭 웹서버의 IP주소를 해석 URL에 포함된 웹서버의 호스트명을 DNS서버에 질의해 웹서버의 IP주소를 해석 DNS서버에 질의시, ARP가 라우터(이더넷)의 MAC주소를 조사 라우터에서 다시 DNS로 목적지 IP질..
자원 반납 자바 라이브러리에는 close메소드를 호출하여 직접 닫아줘야 하는 자원이 있다 ex) 대표적으로 InputStream, OutputStream, java.sql.Connection 자원반납을 해야하는 이유 접근할 때, File Descriptor를 생성해서 소모하는데 자원을 반납하지 않는경우 File Descriptor가 재활용이 되지않아 File Descriptor leak이 발생될 수 있으며 이는 어플리케이션의 문제로 이어질 수 있음 참고 멘토님 & https://docs.oracle.com/cd/E23095_01/Platform.93/ATGInstallGuide/html/s0607detectingfiledescriptorleaks01.html try-finally 방식의 코드 static..
Goal 함수형 프로그래밍에 대해 알아본다 함수형 프로그래밍의 특징에 대해 알아본다. 함수형 프로그래밍 이란? 함수형 프로그래밍(Functional Programming)은 프로그래밍 패러다임 중 하나로, 프로그램을 수학적 함수의 조합으로 생각하고 이를 구현하는 방식이다. 함수형 프로그래밍의 특징 순수 함수 (Pure Functions): 순수 함수는 함수의 반환 값이 입력 값에만 의존하며, 외부의 상태를 변경하지 않는 함수를 일컫는다. 같은 입력에 대해서는 항상 같은 결과를 반환하며, 부작용(side effect)이 없다. 이러한 순수 함수는 예측 가능하고 테스트하기 쉬우며, 병렬 처리와 같은 최적화가 가능하다. private int c = 1; // 순수 함수 예제: 두 정수의 합을 계산하는 함수 p..
Goal stream에 대해 알아본다 stream의 구조와 연산 종류에 대해 알아본다 stream의 특징에 대해 알아본다 stream 이란? 연속되 정보를 처리하는데 사용된다. 즉, 컬렉션, 배열 등의 데이터 요소를 처리하는 기능을 제공한다. 배열에는 스트림을 사용할 수 없지만 배열을 컬렉션의 List로 변환하는 방법이 존재한다. 배열 to 컬렉션의 List Integer[] values = {1,3,5}; List list = new ArrayList(Arrays.asList(values)); List list = Arrays.stream(values).collect(Collectors.toList()); stream 구조 list.stream().filter(x-> x>10).count() 1. 스트..
25장 쓰레드는 개발자라면 알아두는 것이 좋아요 쓰레드와 프로세스의 차이는? JVM이 시작되면 실행되는 것이 프로세스, 프로세스 안에 서 하나 이상의 쓰레드가 수행 쓰레드 클래스르 만들기 위해서는 어떤 인터페이스를 구현하는가? Runnable 인터페이스에 선언된 유일한 메소드는? run() 쓰레드 클래스를 만들기 위해서 어떤 클래스를 확장하는가? Thread 쓰레드가 시작되는 메소드의 이름은 무엇인가? run() 쓰레드를 시작하는 메소드의 이름은 무엇인가? start() 쓰레드에 선언되어 있는 sleep() 메소드의 역할은? 매개 변수로 넘어온 시간(1/1,000초)만큼 대기 sleep() 메소드를 사용할 때는 try-catch로 감싸 주어 예외를 처리해야하는데, 그 이유는 ? sleep() 메소드는 I..
Goal static 메모리 구조 static 이란? static 을 사용하는 이유 static 변수란? static 메소드란? static 블록이란? 참고 static 블록, static 메소드, static 변수 초기화 시점 [Class Loader] 클래스 로딩 시점 / 클래스 로딩 / 클래스 초기화 시작하기 전 ... 싱글턴을 생성하는 방법 중 Eager Initialization의 단점은 인스턴스를 미리 생성하기 때문에, 사용하지 않을 경우 메모리 점유로 인한 자원낭비가 된다였다. 여기서 나의 의문의 시작 dev-rosiepoise.tistory.com static 메모리 구조 static 영역 heap 영역 우리가 만든 클래스 new 연산을 통해 생성한 객체 모든 객체가 공유하는 메모리로 gc..
dev_rosieposie
로지포지의 성장 연대기