분류 전체보기 115

[혼공학습단 10기][혼공자] 컬렉션 프레임워크

✏️ 컬렉션 프레임워크 자료 구조를 사용해서 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록하는 인터페이스와 구현클래스 (java.util 패키지) - 컬렉션: 객체의 저장 - 프레임워크: 사용 방법을 정해놓은 라이브러리 1️⃣ List 컬렉션 객체를 인덱스로 관리. 💡 배열과의 차이점 - 저장 용량이 자동으로 증가한다 - 객체를 저장할 때 자동 인덱스가 부여된다 - 추가, 삭제, 검색등을 위한 다양한 메소드들이 제공됨. - 객체 자체를 저장하는 게 아니라 객체의 번지를 참조한다. - 동일한 객체의 중복 저장이 가능하며 (동일한 번지 참조) null도 저장 가능하다. - 구현 클래스: ArrayList, Vector, LinkedList ✏️ 메소드 List list = ...; list.add("r..

[혼공학습단 10기][혼공자] 스레드 제어

❗️start() 메소드를 호출 하면 바로 실행되는 게 아니라 실행 대기 상태가 됨 운영체제는 실행 대기 상태에 있는 스레드 중 하나를 선택하여 실행 상태로 만듦 스레드 상태 - 실행 대기 상태 ↔︎ 실행 상태 - 실행 상태 → 일시 정지 상태 - 일시 정지 상태 → 실행 대기 상태 ✏️ 스레드 상태 영어 표기 실행 대기 상태: Runnable 실행상태: Running 실행이 멈춘 상태: Terminated 스레드 상태 제어 실행중인 스레드의 상태를 변경한다. 이때 상태 변화를 가져오는 메소드를 파악해야 한다. interrupt() : 일시 정지 상태의 스레드에서 InterruptedException을 발생시켜 예외 처리 코드(catch)에서 실행 대기 상태로 가거나 종료 상태로 갈 수 있도록 한다 sl..

[혼공학습단 10기][혼공컴운] 교착 상태

✓ 교착 상태 Deadlock 두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다려서 그 어떤 프로세스도 더 이상 진행할 수 없는 상태이다. 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상을 의미한다. ✏️ 식사하는 철학자 문제 dining philosophers problem 계속 생각을 하다가 왼쪽 포크가 사용 가능하면 집어 든다 계속 생각을 하다가 오른쪽 포크가 사용 가능하면 집어든다 왼쪽과 오른쪽 포크를 모두 집어들면 정해진 시간동안 식사를 한다 식사 시간이 끝나면 오른쪽 포크를 내려 놓는다 오른쪽 포크를 내려 놓은 뒤 왼쪽 포크를 내려 놓는다 다시 1번 부터 반복한다 순서대로 식사를 한다면 문제가 없지만 만약 모든 철학자가 동시에 포크를 집어 식사를 하려고 한다면 그 어떤 철학..

[혼공학습단 10기][혼공자] 4주차 미션

✏️ 진도: Chapter 12 (스레드) 1. 멀티스레드 2. 스레드 제어 📖 기본 미션: p. 550 [직접 해보는 손코딩] 코딩 과정 및 실행 결과 캡처하기 ❗️교재에 나와 있는 [직접 해보는 손코딩]대로 써보면 다음과 같이 '작업 내용을 저장함.'이 두 번만 출력된다. 0초 1초 - "작업 내용을 저장함." 출력 2초 - "작업 내용을 저장함." 출력 3초 - "메인 스레드 종료" 출력 ❗️그러나 save()메소드의 실행위치를 바꾸면 교재의 실행결과 처럼 '작업 내용을 저장함'이 세 번 출력된다. 0초 - "작업 내용을 저장함." 출력 1초 - "작업 내용을 저장함." 출력 2초 - "작업 내용을 저장함." 출력 3초 - "메인 스레드 종료" 출력 📚 선택 미션: p. 539 문제 2번 풀고, 풀..

[혼공학습단 10기][혼공컴운] 프로세스 동기화

✓ 동기화란 ✏️ 프로세스 동기화: 프로세스들 사이의 수행 시기를 맞추는 것 - 실행 순서 제어를 위한 동기화: 프로세스를 올바른 순서대로 실행하기 위한 동기화 - 상호 배제를 위한 동기화: 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기 위한 동기화 💡 생산자와 소비자 문제: 생산자 프로세스와 소비자 프로세스가 제대로 동기화되지 않아 발생하는 문제. 예상치 못한 결과나 실행 중 오류가 난다. - 공유 자원 shared resource: 프로세스들이 공유하는 자원. (전역변수, 파일, 입출력장치, 보조기억장치 등) - 임계 구역 critical section: 동시에 실행하면 문제가 발생하는 자원에 접근하는 코드 영역 ❗️레이스 컨디션 race condition: 잘못된 실행으로 인해 ..

[혼공학습단 10기][혼공자] 멀티 스레드

⬇️ 프로세스와 스레드에 대해 알아보기 ⬇️ [혼공학습단 10기][혼공컴운] 프로세스와 스레드 ✓ 프로세스 개요 ✏️ 프로세스: 보조기억장치에 저장되어있는 프로그램을 메모리에 적재하고 실행하는 과정 포그라운드 프로세스: 사용자가 보는 앞에서 실행되는 프로세스 백그라운드 프로 hianzhi.tistory.com ✏️ 멀티 프로세스: 각 프로세스는 서로 독립적. 하나의 프로세스에서 오류가 발생해도 다른 프로세스에 영향을 미치지 않는다 ✏️ 멀티 스레드: 하나의 프로세스 내부에 생성. 하나의 스레드가 예외를 발생시키면 프로세스 자체가 종료될 수 있어 예외 처리가 중요하다. 자바의 모든 어플리케이션은 메인 스레드가 main()메소드를 실행하면서 시작한다. 이때 메인 스레드는 멀티 스레드를 생성해서 멀티 태스킹을..

[아우스빌둥][Fachinformatik] 학업을 마치고 아우스빌둥 비자를 받을 수 있을까?

이번 글에서는 내가 아우스빌둥 비자를 받기 까지 어떤 과정을 거쳤는지 짧게 적어보고자 한다. 먼저 나의 학력을 말해보자면 한국에서 Bachelor of Music 독일에서 Master of Music을 마쳤다. 독일 학교 졸업 후 나는 취업준비비자를 받았었다. 원래 나의 계획은 아우스빌둥이 아니고 Informatik 학사를 시작하는 것이었다. 취업준비비자를 받는 날, 외국인청 직원한테 혹시 다른 전공으로 학업을 시작해도 되냐고 물어봤는데 원친적으로는 불가능하다고 했었다. 독일에 온 목적이 일단 음악을 공부하는 것이었고 그 목적에 맞게 취업도 전공과 같은 계열로 해야한다고 했다. 하지만 꼭 하고 싶다면 'Motivationsschreiben'을 써서 내라 그랬다. 그래서 Motivationsschreibe..

[혼공학습단 10기][혼공컴운] CPU 스케줄링

✓ CPU 스케줄링 개요 ✏️ CPU 스케줄링: 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것 프로세스 우선순위 입출력 집중 프로세스 I/O bound process: 입출력 작업(입출력 버스트)이 많은 프로세스. 대기 상태에 더 많이 머무름 CPU 집중 프로세스 CPU bound process: CPU 작업(CPU 버스트)이 많은 프로세스. 실행 상태에 더 많이 머무름 💡 입출력 집중 프로세스가 우선순위가 높다. 입출력 집중 프로세스를 가능한 빨리 실행시켜 입출력장치를 끊임없이 작동시키고, 그 다음 CPU 집중 프로세스에 집중적으로 CPU를 할당하는 것이 더 효율적이기 때문. 스케줄링 큐 준비 큐 ready queue: CPU를 이용하고 싶은 프로세스들이 서는 줄 대기 큐 wa..

[아우스빌둥][Fachinformatiker] 개발자 아우스빌둥 지원 / 적성검사 / 면접 후기

11월 공립대학교 IT 부서의 Fachinformatiker*in für Anwendungsentwicklung 아우스빌둥자리에 지원을 했고 그 달에 바로 적성검사와 면접을 보았다. 결과는 면접보고 일주일 있다가 발표되었다. 당시에는 첫 지원이다 보니 잘 몰랐는데 나중에 보니 굉장히 빨리 진행됐던 것이었다..! 개인적으로 적성검사와 면접을 준비할 때 무슨 적성검사인건지, 면접때는 어떤 걸 물어보는지, 그런 정보가 인터넷에 없어서 좀 막막했었다. 그래서 혹시나 개발자 아우스빌둥을 준비하는데 정보가 없어 막막한 사람들을 위해 내가 겪었던 지원절차와 적성검사, 면접에 대해 간단히 정리해보고자 한다. 지원 내가 지원할 때 냈던 서류는 다음과 같다. Anschreiben(자기소개서) Lebenslauf(이력서/C..

[혼공학습단 10기][혼공자] 기본 API 클래스

Java API Document Java Platform, Standard Edition Documentation - Releases Java Platform, Standard Edition documentation, current and previous releases docs.oracle.com ✓ java.lang 패키지 1) Object 클래스: 최상위 부모 클래스 - equals(): 객체 비교 true, false - hashCode(): 객체 해시 코드(객체를 식별하는 하나의 정수값) ✏️ 컬렉션 프레임워크: HashSet, HashMap, Hashtable이 두 객체가 동등한지 비교하는 방법 hashCode() 메소드 실행하여 리턴된 해시코드 값이 같은지 본 다음 해시 코드값이 같다면 eq..

320x100