본문 바로가기

728x90

분류 전체보기

[Java]자바 가상 머신(Java Virtual Machine) 학습 목표 JVM이 무엇인지 이해한다. JVM(Java Virtual Machine)은 자바 프로그램을 실행시키는 도구입니다. 즉, JVM은 자바로 작성한 소스 코드를 해석해 실행하는 별도의 프로그램입니다. 자바는 JVM을 매개해서 운영체제와 소통합니다. 즉, JVM이 자바 프로그램과 운영체제 사이에서 일종의 통역가 역할을 수행합니다. 자바로 소스코드를 작성하고 실행하면, 먼저 컴파일러가 실행되면서 컴파일이 진행된다. 컴파일의 결과로 .java확장자를 가졌던 자바 소스코드가 .class확장자를 가진 바이트 코드 파일로 변환된다. 이후 JVM은 운영 체제로부터 소스 코드 실행에 필요한 메모리를 할당받습니다. 그것이 바로 런타임 데이터 영역(Runtime Data Area)이다. 그다음 클래스 로더(Clas.. 더보기
스레드(Thread) 하나의 cpu가 두가지이상의 일을 동시에 하는것 학습 목표 스레드가 무엇인지 설명할 수 있다. 프로세스 (Process)와 스레드(Thread) 프로세스는 데이터, 컴퓨터자원, 그리고 스레드로 구성되는데, 스레드는 데이터와 애플리케이션이 확보한 자원을 활용하여 소스코드를 실행한다 즉 스레드는 하나의 코드 실행 흐름 이라고 볼수있다. 싱글 스레드와 멀티 스레드의 차이를 설명할 수 있다. 메인스레드(Main thread) 자바 애플리케이션을 실행하면 가장 먼저 실행되는 메서드는 main메서드이며, 메인 스레드가 main메서드를 실행시켜준다. 메인 스레드는 main메스드의 코드를 처음부터 끝까지 순차적으로 실행시키며 코드의 끝을 만나거나 return문을 만나면 실행을 종료한다. 만약 자바 애플리케이션의 소스 .. 더보기
[Java]추상화(Abstraction) 학습 목표 추상화의 핵심 개념과 목적을 이해하고 설명할 수 있다. 추상화는 공통의 속성이나 기능을 묶어 이름을 붙이는 것으로 객체 지향적 관점에서 클래스를 정의하는것을 추상화라고 할 수 있다. 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화 하는것, 즉 모델화 하는것으로 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념이다. 추상화를 사용하면 코드의 재사용성, 가독성을 높이고, 생산성의 증가, 에러 감소, 유지 보수에 있어 많은 시간을 줄일수있다. abstract 제어자가 내포하고 있는 의미를 이해하고, 어떻게 사용되는 지 설명할 수 있다. 사전적 의미는 추상적인 이라는 뜻을 가지고 있는 미완성이라 정리할 수 있다. abstract는 주로 클래스와 메서드를 형용.. 더보기
[Java]스트림(Stream) 학습목표 스트림의 특징과 사용 목적을 이해할 수 있다. 스트림은 배열, 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. 스트림을 사용하면 List,Set,Map,배열 등 다양한 데이터 소스로부터 스트림을 만들 수 있고, 이를 표준화된 방법으로 다룰수 있다. 스트림은 데이터 소스를 다루는 풍부한 메서드를 제공한다. 이를 활용하면 다량의 데이터에 복잡한 연산을 수행하면서도, 가독성과 재사용성이 높은 코드를 작성할 수 있다. 선언형으로 데이터 소스를 처리한다. 스트림을 이용하면 선언형으로 데이터 소스를 처리할 수 있다. 선언형 프로그래밍이란 "어떻게"수행하는지보다는 "무엇을"수행하는 지에 관심을 두는 프로그래밍 패러다임이다. 람다식으로 요소 처리 코드를 제공한다 Strea.. 더보기
[Java]람다식(Lambda Expression) 함수형 프로그래밍 기업을 지원하는 자바의 문법요소이다 람다식은 메서드를 하나의 '식(expression)으로 표현한 것으로 , 코드를 매우 간결하면서 명확하게 표현 할 수있다는 장점이 있다 객체지향적 언어의 특성을 가진 자바의 특성에 따라 일반적인 함수가 아니라 익명의 객체이기 때문에 기본 자바의 문법 요소를 해치지 않으면서 함수형 프록래밍 기법을 사용할 수 있는 장치가 필요하다 이에따라 함수형 인터페이스가 만들어졌다. 학습 목표 람다식이 무엇이고, 어떻게 사용할 수 있는 지 이해할 수 있다. 람다식에서는 기본적으로 반환타입과 이름을 생략할 수 있다. 즉 익명함수라고 부르기도한다 메서드 바디에 실행문이 하나만 존재할 때 중괄호를 생략할수있고, 매개변수 타입을 쉽게 유추할 수 있는 경우에는 매개변수의 타입.. 더보기
[Java]애너테이션(Annotation) 주석은 소스 코드를 읽는 '사람'에게 정보를 제공하는 반면, 애너테이션은 특정 코드를 사용하는 '프로그램'에게 정보를 전달한다 학습 목표 애너테이션의 개념을 이해하고 설명할 수 있다. 애너테이션의 주요한 역할- 1.컴파일러에게 문법 에러를 체크하도록 정보를 제공. 2.프로그램을 빌드할 때 코드를 자동으로 생성할 수 있도록 정보를 제공. 3.런타임에 특정 기능을 실행하도록 정보를 제공. 애너테이션의 종류- 표준 애너테이션과 메타 애너테이션이 어떤 차이가 있고, 어떤 내용이 있는 지 이해할 수 있다. 표준 애너테이션- @Override : 상위 클래스의 메서드를 오버라이딩 하는 메서드라는 것을 컴파일러에게 알려주는 역할 만약 상위 클래스(또는 인터페이스)에서 @Override가 붙어있는 메서드명과 동일한 이.. 더보기
[Java] 다형성(Polymorphism) 학습 목표 자바 객체지향 프로그래밍에서 다형성이 가지는 의미와 장점을 이해할 수 있다. 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든것을 의미 상위 클래스 타입의 참조변수를 통해 하위 클래스의 객체를 참조할 수 있도록 허용한것,하위클래스에선 상위 클래스로 객체 참조는안됨. 예를들어 홍길동이 extends를 요리사로 하면 new홍길동()을 할 시 홍길동만 뜨는것이 아니라 홍길동 +요리사 가같이 메모리에 뜬다 반대로 new요리사() 를할시 요리사 만 뜬다. 홍길동 h1 = new 홍길동() ,요리사 y1 = new 홍길동() 은 되지만 요리사 y2 = new 요리사()밖에안된다. 참조변수의 타입 변환에 대한 내용을 이해하고, 업캐스팅과 다운캐스팅의 차이를 설명할 수 있다. 타입변환을 .. 더보기
[네트워크][HTTP]에러코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 2xx(Successful) : 요청 정상 처리 3xx(Redirection) : 요청을 완료하려면 추가 행동이 필요 4xx(Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx(Server Error): 서버오류, 서버가 정상 요청을 처리하지 못함. 200 OK 201 Created 새로운 리소스가 생성됨 202 Accepted 요청이 접수 되었으니 처리가 완료되지 않았음 204 No Content 서버가 요청을 성공적으로 수행했지만 응답 페이로드 본문에 보낼 데이터가 없음.(웹문서 편집기에서 save 버튼을 눌렀을경우 아무런 내용이 없어도되는것처럼.) 대부분 200이나 201정도만 사용하기때문.. 더보기

728x90