본문 바로가기

분류 전체보기

(209)
24.01.29 ~ 24.02.04 한주의 회고 월요일에는 건강검진을 다녀왔다 화요일에는 JVM 과 바이트 코드에 대한 CS 공부를 했다 수요일에는 ORM 에 대한 CS 공부를 했다 목요일에는 JDK, JRE 에 대한 CS 공부를 했다 금요일에는 Java Collection Framework 에 대한 CS 공부를 했다 어느덧 2월이 되었고 개발자 공부를 시작한지 7개월 정도가 되었다 이제 슬슬 원래 하던 일쪽으로도 구직을 해봐야겠다
24.02.02 Java 의 Collection Framework 란? 1. JCF (Java Collection Framework) - Java 에서 Collection 이란 데이터의 집합, 그룹을 의미 - JCF 는 객체들을 한 곳에 모아 관리하고 편하게 사용하기 위해 제공되는 환경이며, 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공 - Collection 에는 List, Map, Set, Stack, Queue 와 같은 것들이 있다 1) Collection 을 사용하는 이유 - 다수의 Data 를 다루는데 표준화된 클래스를 제공해주기 때문에 자료구조를 직접 구현하지 않고 편하게 사용할 수 있기 때문 - 배열과 다르게 객체를 보관하기 위한 공간을 미리 정하지 않아도 되므로, 상황에 따라 객체의 수를 동적으로 정하여 프로그램의 공간적인 효율..
24.02.01 JDK, JRE 란? 1. JDK (Java Development Kit) - 자바 개발 키트의 약자로 개발자들이 Java 기반 소프트웨어를 개발하기 위한 도구들로 이뤄진 패키지 혹은 SDK 키트 - Java 를 개발 시 필요한 라이브러리 들과 javac, javadoc 등의 개발 도구들이 포함되어 있고 Java 프로그램을 실행시켜야 하기에 JRE (Java Runtime Environment) 도 포함됨 * SDK (Software Development Kit) : 소프트웨어 개발 키트로 하드웨어 플랫폼, 운영체제 또는 프로그래밍 언어 제작사가 제공하는 툴 * javac : Java 컴파일러로 Java 소스를 바이트 코드로 컴파일 * javadoc : Java 소스로부터 HTML 형식의 API 도큐먼트 생성 2. JRE (..
24.01.31 ORM 1. ORM (Object relatinal mapping) - 객체(클래스) 와 관계(관계형 DB) 와의 설정을 의미 - 객체 지향 프로그래밍은 클래스를 사용하고 관계형 DB 는 테이블을 사용 - 객체 모델과 관계형 모델간에 불일치가 존재하는데 이 객체간의 관계를 바탕으로 SQL 을 자동 생성하여 불일치를 해결함 - Object DB 데이터 에서 매핑의 역할을 하는 것 2. 장점 (1) 객체 지향적 코드로 인해 더 직관적이고 비즈니스 로직에 집중할 수 있도록 도와줌 - CRUD 를 위한 긴 SQL 문장을 작성할 필요가 없다 - 각 객체(Model) 별로 코드를 작성해 가독성을 높여 줌 - SQL 의 절차적 접근이 아닌 객체적인 접근으로 생산성을 높임 (2) 재사용 및 유지보수의 편리성 증가 - 매핑 정..
24.01.30 JVM 과 바이트 코드 1. JVM (Java Virtual Machine) - Java 를 실행하기 위한 가상 컴퓨터 (실제 컴퓨터가 아닌 소프트웨어로 구현한 것) - 자바 가상머신의 약자 - 자바 애플리케이션을 클래스 로더(Class Loader)를 통해 읽고 자바 API 와 함께 실행 - 자바 프로그램이 어느 운영체제에서도 동일하게 작동할 수 있게 해줌 (JVM 은 운영체제에 종속되고 각 OS에 맞는 JVM 을 설치해야함) - 자바 프로그램은 OS가 아닌 JVM 과 통신하고 JVM 은 자바프로그램으로부터 전달 받은 명령을 해당 OS 가 이해할 수 있도록 변환하여 전달 - GC (Garbage Collection) 을 통해 자동으로 메모리 관리 2. Java 바이트 코드 - JVM 이 이해할 수 있는 언어로 변환된 자바 소..
24.01.29 오늘의 일기 (건강검진) 오늘은 건강검진을 다녀왔다 언젠가 부터 소화력이 부쩍 떨어지드니 속이 아프고 해서 원래도 위염이 있던 터라 위 내시경을 받기로하고 하는 김에 대장 내시경도 받고 왔다 어제 거의 뜬 눈으로 밤을 새고 오늘은 내시경을 마치고 돌아와 멍~ 해서 거의 잤다 결과는 다행히 조금 붉을 뿐 큰 문제는 없다고한다 음식 조절과 다이어트를 추천해 주셨다 몸에도 이상이 없으니 내일부터 또 열심히 공부를 해야겠다
24.01.22 ~ 24.01.28 한주의 회고 월요일에는 비선형형 자료구조에 대한 CS 공부를 했다 화요일과 수요일에는 에는 프로세스에 대한 CS 공부를 했다 목요일에는 스레드와 멀티스레딩 그리고 공유자원과 임계영역에 대한 CS 공부를 했다 금요일에는 CPU 스케줄링 알고리즘에 대한 CS 공부를 했다 이번달도 이제 마지막이다 다음달 부터는 개발자 말고도 원래 했던 업종 구직도 할 예정이다 언제까지 개발자에 매달릴 수 없기 때문이다 이왕이면.. 좋은 소식 오면 좋겠다
24.01.26 CPU 스케쥴링 알고리즘 1. CPU 스케줄러 - CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU 에 할당 - 프로그램이 실행될 때는 CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정 - 이 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게 준비 큐(ready queue) 에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 함 1) 비 선점형 방식 (non-preemptive) - 프로세스가 스스로 CPU 소유권을 포기하는 방식 - 강제로 프로레스를 중지하지 않기 때문에 컨텍스트 스위칭으로 인한 부하가 적다 (1) FCFS (First Come, First Served) - 가장 먼저 온 것을 가장 먼저 처리하는 알고리즘 - 길게 수행되는 프..
24.01.25 스레드와 멀티스레딩 그리고 공유자원과 임계영역 1. 스레드 - 프로세스의 실행 가능한 가장 작은 단위 - 프로세스는 여러 스레드를 가질 수 있다 - 코드, 데이터, 스택, 힙을 각각 생성하는 프로세스와는 달리 스레드는 코드, 데이터, 힙은 스레드 끼리 서로 공유하고 그 외의 영역은 각각 생성됨 2. 멀티스레딩 - 프로세스 내 작업을 여러개의 스레드, 멀티스레드로 처리하는 기법 - 스레드끼리 서로 자원을 공유하기 때문에 효율성이 높다 - 예) 웹 요청을 처리할 때 새 프로세스를 생성하는 대신 스레드를 사용하는웹 서버의 경우 훨씬 적은 리소스를 소비하며 한 스레드가 중단되더라도 다른 스레드는 실행 상태일 수 있기 때문에 중단되지 않은 빠른 처리 가능 - 동시성에도 큰 장점이 있다 - 한 스레드에 문제가 생기면 다른 스레드에도 영향을 끼쳐 스레드로 이루어..
24.01.24 프로세스 2 1. 프로세스 - 컴퓨터에서 실행되고 있는 프로그램을 말하며 CPU 스케쥴링의 대상이 되는 작업 이라는 용어와 거의 같은 의미로 쓰임 - 아래 그림처럼 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU 가 프로세스를 실행 1) 프로세스의 메모리 구조 - 위에서부터 스택(stack), 힙(heap), 데이터 영역(BSS segment, Data segment), 코드 영역(code segment)로 나뉨 - 스택은 위 주소 부터 할당 되고 힙은 아래 주소부터 할당 됨 (1) 스택과 힙 - 스택과 힙은 동적 할당이 됨 - 동적 할당은 런타임 단계에서 메모리를 할당받는것을 말함 - 스택은 지역변수, 매개변수, 실행되는 함수에 의해 늘어들거나 줄어..