전체 글 134

운영체제(OS)

1. 운영체제란 무엇인가? - 운영체제란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 , 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 - 협의의 운영체제(커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분 - 광의의 운영체제 : 커널 뿐만 아니라 각종 주변 시스템 유틸리티를 포함한 개념 2. 운영체제의 목적 1) 컴퓨터 시스템의 자원을 효율적으로 관리 CPU(프로세서), 메모리(기억장치), 입출력장치(IO장치) -> 주어진 자원으로 최대의 효율을 내도록 사용자간의 형평성 있는 자원 분배 2) 컴퓨터 시스템을 편리하게 활용할 수 있도록 관리 운영체제는 동시 사용자/ 프로그램들이 각자 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공 (자기만 CPU를 독점해서 사용하는 것처럼 느껴짐) 하..

CS 2022.10.20

이것이 자바다 Ch 10 예외 처리

- 에러와 예외 - 에러는 JVM 실행에 문제가 생겼다는 것이므로 개발자가 에러에 대해 사전에 대처할 방법이 없다 - 반면 예외는 예외 처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 1. 예외 -예외는 두 가지 종류가 있다. -> 일반 예외와 실행 예외 1)일반 예외 (컴파일러 체크 예외) - 자바 소스를 컴파일하는 과정에서 예외 처리 코드가 필요한지 검사한다. - 만약 예외 처리 코드가 없다면 컴파일 오류가 발생한다. 2)실행 예외 - 컴파일 하는 과정에서 예외 처리 코드를 검사하지 않는 예외를 말한다. - 일반 예외와 마찬가지로 예외 처리 코드가 필요하다 (둘의 차이는 컴파일 시에 예외 처리를 확인하느냐 안하느냐) - JVM이 일반 예외와 실행 예외를 구분하는 방법 ..

빌드 자동화 도구 Maven vs. Gradle

Maven Apache Ant를 보완하고자 아파치에서 만든 빌드 자동화 도구 XML 기반의 pom.xml 파일로 설정한다 Maven은 xml을 기반으로 dependency 및 디렉토리 구조를 관리해왔는데, 라이브러리가 추가되거나 혹은 서로 다른 버전의 라이브러리를 관리하기에는 어려움이 있다.Gradle은 Maven과 호환이 되고 설정이 간편하고 유연하다는 장점이 있다. Gradle Maven을 대체할 수 있는 JVM 기반의 빌드 도구 gradle 명령어로 관리한다. 스트립트 기반의 build.gradle파일로 관리한다.

Spring 2022.09.14

Spring MVC 와 Spring Boot

★Spring MVC와 Spring Boot - Spring MVC(Model-View-Controller) - Spring MVC 의 경우, xml 파일들에 수동으로 설정을 해줘야한다. (Dispatcher Servlet, Handler Mapping, View Resolver) - Spring Boot의 경우, 자동설정(AutoConfiguration)을 이용하여 개발에 필요한 모든 내부 dependecy들을 관리한다. (스프링 프레임워크 자동화 도구) -> 자동 설정을 통해 초기 설정 작업을 빠르게 끝낼 수 있음. -또한, Spring MVC는 따로 톰캣과 같은 WAS(Web Application Server)를 설치해줘야하지만, -Springboot는 내장된 컨테이너에서 실행하기 때문에 별도의 W..

Spring 2022.09.14

DI 의존객체 주입 -> @Autowired

-Autowired - 필요한 의존 객체의 타입에 해당하는 BEAN을 찾아 주입한다. (맞는 "타입"을 찾아서 주입해준다.) -@Autowired 는 변수, setter 메서드, 생성자, 일반 메서드에 적용이 가능하다. -DataBaseManager public class DataBaseManager { @Autowired private DataBaseUserInfo dbi; // 의존객체 주입 -> 자동주입 -> @Autowired 어노테이션을 사용함으로써 public DataBaseManager(DataBaseUserInfo dbi){ this. dbi = dbi; } ->라고 쓰지 않고도 의존 주입이 가능해짐. -컨테이너를 살펴보면, -> 태그를 사용하지 않고, DataBaseManager 객체를 ..

Spring 2022.09.14

DI 의존주입 & Bean 생성과 사용

-> service 클래스를 둔다. ( studentdao 객체를 멤버변수로 가지며, 생성자의 매개변수로 studentdao객체를 전달받아서 초기화한다) -StudentDao 클래스 생성 public class StudentDao { String driver; String url; String id; String pw; Connection con = null; PreparedStatement pstmt = null; ResultSet rs = null; // 스프링 컨테이너에 넣어서 사용할 예정이므로, 싱글턴 코딩은 하지 않겠습니다. StudentDao( DataBaseConnectionInfo dbconinfo ){ this.driver = dbconinfo.getDriver(); this.url = ..

Spring 2022.09.14

DI (Dependency Injection) 의존 주입

-src/main/java 폴더에 -1. 실행할 MainClass -2. Battery 인터페이스 / Battery 인터페이스를 구현할 클래스 ChargeBattery, NormalBattery 2개 생성 -3. ElectronicCar, ElectronucRadio 클래스 생성 - Battery 인터페이스 package com.ezen.battery; public interface Battery { public int getBatteryValue(); } - NormalBattery.java package com.ezen.battery; public class NormalBattery implements Battery{ @Override public int getBatteryValue() { retur..

Spring 2022.09.14

이것이 자바다 Ch 9 중첩 클래스와 중첩 인터페이스

- 중첩 클래스란 클래스 내부에 선언한 클래스를 말한다. - 장점 : 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있다. 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다. - 중첩 인터페이스란 클래스 내부에 선언한 인터페이스를 말한다. (해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위해) 1. 중첩 클래스 - 두 가지로 나뉜다. 1)멤버 클래스(클래스의 멤버로서 선언되는 중첩 클래스), 로컬 클래스(메소드 내부에 선언되는 중첩 클래스) 멤버 클래스는 다시 인스턴스 멤버 클래스와 정적 멤버 클래스로 나뉜다. - 멤버 클래스도 하나의 클래스이기 때문에 컴파일 하면 바이트 코드 파일(.class)이 별도로 생성된다. 파일 이름은 다음과 같다 A $ B ..

이것이 자바다 Ch 8 인터페이스

1. 인터페이스의 역할 - 자바에서 인터페이스는 객체의 사용 방법을 정의한 타입이다. - 인터페이스는 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할을 한다. - 인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출한다. 그렇기 때문에 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 된다. - 개발코드가 직접 객체의 메소드를 호출하면 간단한데 왜 중간에 인터페이스를 두는걸까? 개발코드를 수정하지 않고, 사용하는 객체를 변경할 수 있도록 하기 위해서다. 인터페이스는 여러개의 객체들과 사용이 가능하므로 어떤 객체를 사용하느냐에 따라 실행 내용과 리턴값이 다를 수 있다..

이것이 자바다 Ch 7 상속

1. 상속이란? - 부모(상위) 클래스의 멤버를 자식(파생) 클래스에게 물려주는 것 - 코드의 중복을 줄여주고 유지 보수 시간을 줄여준다. - 단 이전에 접근 제한자에서 공부했듯이 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 자식 클래스에서 이용할 수 없다. 마찬가지로 default 접근 제한을 갖는 부모클래스의 필드와 메서드도 다른 패키지에서 상속받는 자식클래스에서 이용할 수 없다. 2. 클래스 상속 - 하나의 자식 클래스는 하나의 부모 클래스만 상속할 수 있다 (다중 상속 불가) class 자식클래스 extends 부모클래스{ //필드 //생성자 //메소드 } 3.부모 생성자의 호출 - 자식 객체를 생성하면, 눈에 보이지 않지만 내부적으로 부모 객체가 먼저 생성된 후에 자식 객체가..