본문 바로가기

전체 글

(129)
[스프링 핵심 원리] 스프링이란? 스프링 프레임워크 핵심기술 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술 스프링 MVC, 스프링 WebFlux 데이터 접근 기술 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합 캐시, 이메일, 원격접근, 스케줄링 테스트 스프링 기반 테스트 지원 언어 코틀린, 그루비 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용 스프링 부트 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성 Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨 손쉬운 빌드 구성을 위한 starter 종속성 제공 스프링과 3rd parth(외부) 라이브러리 자동 구성 메트릭, 상태 확인, 외부 구성 같..
[KOCW] 반효경 운영체제 강의 정리 - 2. System Structure & Program Execution 1 컴퓨터 시스템 구조 Mode bit 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치 필요 Mode bit을 통해 하드웨어적으로 두 가지 모드의 operation 지원 1 사용자 모드 : 사용자 프로그램 수행 0 모니터 모드(커널 모드, 시스템 모드) : OS 코드 수행 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 "특권명령"으로 규정 Interrupt나 Exception 발생시 하드웨어가 mode bit을 0으로 바꿈 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 셋팅 Timer 타이머 정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 인터럽트를 발생시킴 타이머는 매 클럭 틱 때마다 1씩 감소 타이머 값..
[KOCW] 반효경 운영체제 강의 정리 - 1. Introduction to Operating Systems 운영체제란 무엇인가? 운영체제(Operating System, OS)란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제(커널) 운영체제의 핵심 부분으로 메모리에 상주하는 부분 광의의 운영체제 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 운영체제의 목적 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 운영체제는 동시 사용자 / 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서, 기억장치, 입출력 장치 등의 효율적 관리 사용자간의 형평성 있는 자원 분배 주어진 자원으로 최대한의 성능을 내도록 사용자 ..
[KOCW] 반효경 운영체제 강의 정리 - 1. 강의 소개 운영체제(Operation System, OS)란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 운영체제는 동시 사용자 / 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서, 기억장치, 입출력 장치 등의 효율적 관리 출처 : http://www.kocw.net/home/cview.do?lid=5a0205590631eece
[Kotlin] Exceptions Exception classes Kotlin의 모든 예외 클래스는 Throwable 클래스를 상속한다. 모든 예외에는 메시지, 스택 추적 및 선택적 원인이 있다. 예외 객체를 throw하려면 throw 표현식을 사용한다. fun main() { throw Exception("Hi There!") } 예외를 잡으려면 try... catch 표현식을 사용하시오. try { // some code } catch (e: SomeException) { // handler } finally { // optional finally block } 0개 이상의 catch 블록이 있을 수 있으며 finally 블록은 생략될 수 있다. 그러나 적어도 하나의 catch 또는 finally 블록이 필요하다. Try is an ..
[Kotlin] Returns and jumps Kotlin에는 세 가지 구조적 점프 표현식이 있다. return 기본적으로 가장 가까운 둘러싸는 함수 또는 익명 함수에서 반환 break는 가장 가까운 둘러싸는 루프를 종료한다. continue는 가장 가까운 둘러싸는 루프의 다음 단계를 진행한다. 이러한 모든 표현식은 더 큰 표현식의 일부로 사용할 수 있다. val s = person.name ?: return 이러한 표현식의 유형은 Nothing 타입이다. Break and continue labels Kotlin의 모든 표현식은 레이블로 표시될 수 있다. 레이블에는 @ 기호가 오는 식별자 형식이 있다(예: abc@, fooBar@). 표현식에 레이블을 지정하려면 앞에 레이블을 추가하기만 하면 된다. loop@ for (i in 1..100) { /..
[Kotlin] Conditions and loops (조건문 및 반복문) If expression Kotlin에서 if는 표현식이다.- 값을 반환한다. 따라서 Kotlin에는 삼항연산자(조건 ? then : else)이 없다. 왜냐하면 일반적으로 if가 이 역할을 제대로 수행하기 때문이다. var max = a if (a b) { max = a } else { max = b } // 표현식으로 val max = if (a > b) a else b if 문의 블럭 내에 여러 줄의 식이 있다면 리턴 값은 마지막 줄이 된다. val max = if (a > b) { print("Choose a") a } else { print("Choose b") b } 예를 들어 값을 반환하거나 변수에 할당하기 ..
[Kotlin] Type checks and casts(타입 확인 및 형변환) is and !is operators 오브젝트의 타입을 런타임에서 확인하려면 !is 를 사용하시오. if (obj is String) { print(obj.length) } if (obj !is String) { // !(obj is String)와 같은 결과 print("Not a String") } else { print(obj.length) } Smart casts 대부분의 경우 컴파일러가 is - 체크와 명시적 형변환을 추적하기 때문에 Kotlin에서 명시적 형변환 연산자를 사용할 필요가 없다. 변경할 수 없는 값의 경우 필요할 때 자동으로 (안전한) 형변환을 삽입한다. fun demo(x: Any) { if (x is String) { print(x.length) // x는 String으로 자동..