CS 13

컬렉션 프레임워크 와 스트림

자료구조의 분류 -대표적으로 많이 분류되는 방법은 선형 자료구조, 비선형 자료구조로 나눌수 있다. 이러한 분류를 보통 "형태에 따른 자료구조"라고 보고, 각 자료구조에 알맞게 구체화 된 것들을 '구현된 자료구조'라 한다. 선형자료구조 선형자료구조는 쉽게 생각해서 데이터가 일렬로 연결된 형태라고 보면된다. 선형자료구조는 대표적으로 리스트(List), 큐(Queue) , 덱(Deque) 이 있다. 비선형자료구조 일렬로 나열된 것이 아닌, 각 요소가 여러 개의 요소와 연결된 형태를 생각하면 된다. 거미줄 대표적인 비선형 자료구조는 그래프(Graph), 트리(Tree)이다. 컬렉션 프레임워크 LIST컬렉션 List 인터페이스: 순서가 있는 데이터의 집합을 나타냅니다. 중복 요소를 허용합니다.선형 자료구조를 구현..

CS/자바 2023.04.27

자바의 예외처리 종류

1.Error(오류) 와 Exception(예외) 먼저 오류와 예외츼 개념을 정리하자 오류(Error) 는 시스템에서 비정상적인 상황이 생겼을 때 발생한다. 메모리 부족, 네트워크 장애 등 이는 시스템 레벨에서 발생하기 때문에 심각한 수준의 오류이다. 따라서 개발자가 미리 예측하여 처리할 수 없기 때문에, 어플리케이션에서 오류에 대한 처리르 신경쓰지 않아도 된다. 오류가 시스템 레벨에서 발생한다면, 예외는 개발자가 구현한 로직에서 발생한다. 예외는 발생할 상황을 미리 예측하여 처리할 수 있다. 개발자가 처리할 수 있기 때문에 예외를 구분하고 그에 따른 처리 방법을 명확히 알고 적용하는 것이 중요하다. 2. Checked Eception과 Unchecked Exception Checked Eception ..

CS/자바 2023.04.27

객체지향 프로그래밍(OOP :Object-Oriented Programming)

객체 지향 프로그래밍은 현실 세계의 사물같은 객체를 만들고, 객체에서 필요한 특징(필드,메소드 ... )을 뽑아 프로그래밍 수행하는 것이다. 객체지향 프로그래밍은 총 4가지 특징이 있다. 추상화, 캡슐화, 상속성, 다형성이다. 이를 통해 코드의 재사용을 통해 반복적인 코드를 최소화하고, 코드를 최대한 간결하게 표현한다. 프로그램을 보다 유연하고 변경이 용이하게 만들수 있다는 점이다. 객체란 무엇인가?? 주변을 둘러보면 마우스, 모니터 , 키보드 등 우리가 주변에서 흔히 볼수 있는 "모든 실재하는 대상"을 객체 지향프로그래밍 언어에서는 객체라고 부른다.객체는 우리가 보고 느끼고 인지할 수 있는 그 모든것을 의미 객체지향 프로그래밍(OOP) 4가지 특징 1.추상화 -객체의 공통적인 속성과 기능을 추출하여 정..

CS/자바 2023.04.27

자바 프로그램 실행 과정 및 기본 구조

-목차- 1.자바 발생배경 2.자바 컴파일 과정 및 구조 3.자바 메모리 구조 4.가비지 컬렉션 자바는 1995년 썬 마이크로시스템즈에서 발표한 객체 지향 프로그래밍 언어이다. 그 당시에 문제점 : 각각의 하드웨어 와 운영체제마다 프로그램을 개발해야 하는 번거로움 당시 인터넷이 급격하게 발전하면서 웹 어플리케이션 개발이 많이 이루어졌다. 이에 어플리케이션을 쉽게 개발할 수 있는 언어가 필요하였다. 자바는 운영체제와 하드웨어에 독립적으로 동작하는 플랫폼과 인터넷에서 동작하는 어플리케이션 개발을 위한 언어로써 탄생하게 되었다. 자바는 어떻게 독립적으로 동작하는 플랫폼을 구현할 수 있지? 자바 컴파일러는 소스 코드를 바이트 코드로 변환한다. 바이트 코드는 JVM이 이해할 수 있는 중간 코드 형태로 운영체제와 ..

CS/자바 2023.04.27

트랜잭션(Transaction)이란 무엇인가?

트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.영어로 간략히 Tx라고 표기하며 1초당 처리할 수 있는 트랜잭션의 개수를 TPS라고 한다. 데이터베이스의 상태를 변환시키는 하나의 논리기능을 수행하기 위한 작업의 단위란 무엇일까? 간단하게 말해서 아래의 질의어(SQL)를 이하여 데이터베이스를 접근하는 것을 의미한다. - SELECT, INSERT, DELETE, UPDATE 가 있으며 작업의 단위는 질의어 한 문장이 아니라는 점이다. 게시판에 INSERT를 했으면 게시판 조회시 SELECT가 가능해야 한다. 예를 들어 A라는 사람이 B라는 사람에게 1,000원을 지급하고 B가 그 돈을 받은 경우, 이 거래..

데이터베이스 시스템의 구성

데이터베이스(Database, DB)란? : 데이터의 저장소. DBMS(Database Management System, 데이터베이스 관리 시스템)란? 데이터베이스를 운영하고 관리하는 소프트웨어.계층형, 망형, 관계형 DBMS 중 대부분의 DBMS가 테이블로 구성된 관계형 DBMS(RDMBS)형태로 사용됨. DBMS 는 크게 사용자가 시스템과 상호 작용할 수 있는 언어나 인터페이스, 시스템의 전반적인 운영을 관리하는 DBMS서버 , DBMS 서버는 데이터 베이스의 효율적이고 안전한 기능을 보장하기 위해 쿼리처리, 트랜잭션 관리, 보안 및 복구와 같은 작업을 처리한다. 질의처리기(쿼리프로세서)의 역할은 SQL 과 같은 쿼리 언어로 작성된 사용자 쿼리를 해석 및 처리하고 데이터베이스에서 쿼리를 실행하기 위한..

로드밸런서

로드밸런싱이 왜 필요할까? 서버가 단 하나만 존재할 때 수천만명의 사람들이 서버에 동시 접속하면 어떻게 될까요? 하나의 서버는 부하를 감당하지 못할 수도 있을 것입니다. 이를 해결하는 방식에는 장비를 업그레이드하는 Scale-up방식과 장비를 여러개 두는 Scale-out방식이 있습니다. Scale-out 방식으로 여러 서버를 둔다면 해당 서비스에 접근하기 위해서는 서버마다 존재하는 다른 IP가 필요할 것입니다. 서버마다 다른 공인 IP를 부여한다면 사용자들마다 각각 다른 IP로 접속할 것이고, 개발자가 원하는 방식대로 부하를 분산하기 어려워집니다. 예를 들어 100명의 사용자가 존재하고 2대의 서버가 있다면 99명의 사용자가 서버 1에 접속하고 1명의 사용자가 서버 2에 접속할 수도 있는 것이니까요. ..

CS/네트워크 2023.04.11

OSI계층, TCP/IP

OSI 모델은 컴퓨터 네트워크에서 통신 프로토콜을 이해하고 설계하는 표준화된 방법을 제공하는 개념적 프레임워크이다. OSI 7계층을 나눈 이유는? 통신이 일어나는 과정을 단계별로 파악하기 위함 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들지 않고 에러단계만 고칠수 있기 때문이다. OSI7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 01_ 물리계층 -인터넷 케이블, 라우터 스위치 등의 전기적 신호가 물리적 장치에 왔다갔다하는 곳을 말한다. 02_ 데이터링크계층 - 네트워크 상의 주변 장치들 간의 데이터를 전송한다. 스위치는 네트워킹 장치이며 미디어 엑세스 제어 주소를 기반으로 데이터 패킷을 의도한 대상으로 전달하여 네트워크 내에서 장치를 연결하는데 ..

CS/네트워크 2023.04.11

데드락

데드락 -리소스 경합, 적덜한 동기화 부족, 잘못된 자원 할당, 순환 대기, 프로그래밍 오류로 인해 데드락이 발생된다. - 프로세스가 자원을 얻지 못해 다음 작업을 못하는 상태 데드락 발생조건 상호배제 : 자원은 한번에 한 프로세스만이 사용할 수 있어야 한다. 점유대기 : 하나의 자원을 점유하고 있으면서 자원을 추가로 점유하기 위해 대기하여야 한다. 비선점 : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 뺴앗을 수 없다. 순환대기 : 이것들이 순환해서 이뤄진다. 데드락 해결방법 보통 데드락의 발생조건을 기준으로 데드락 해결방법을 찾는다. 데드락 발생 가능성을 게속 검사해서 데드락 발생가능성 있다면 회피한다. 데드락을 회피하기 위해 사용하는 개념은 Safe State 와 Unsafe State..

CS/운영체제 2023.04.11