본문 바로가기

반응형

프로그래밍

(112)
자바의 인터페이스의 특징 및 사용법 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 추천 도서 book.interpark.com/product/BookDisplay.do?_method=detail&sc.prdNo=220675219&gclid=Cj0KCQiApsiBBhCKARIsAN8o_4gBdWvcLgQ7MkppWwNVd8BU1dELce8QtUxvrL9jHijO2gOC9yVTPGEaAiyDEALw_wcB 싸니까 믿으니까 인터파크도서 직장인을 위한 비폭력대화(N..
자바의 패키지의 특징 및 사용법 목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 추천 도서 book.naver.com/bookdb/book_detail.nhn?bid=1486282 테스트 주도 개발 최근 주목받고 있는 프로그래밍 방법인 테스트 주도 개발, 즉 TDD를 설명한 최초의 책이자, 가장 권위적인 책. 테스트 주도 개발을 퍼뜨린 장본인이며 객체 지향 프로그래밍의 선구자 중 한 사람 book.naver.com Package 키워드 Package란 무엇인가? Package는 Class, Interface file의 집합 첫 줄에 작성되어야함 모든 클래스에는 클래스 이름과 패키지 이름 존재합니다. 이 둘을 합쳐..
자바의 상속의 특징 및 사용법 목표 자바의 상속에 대해서 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속이란? 상위 클래스에서 선언 된 변수나 메서드를 하위 클래스에서 동일하게 사용할 수 있다. 자바 상속은 extends 를 사용합니다. 모든 클래스는 Object 객체를 상속받고 있습니다. public class Study extends Basic { // 상속 } 사용하는 이유? 코드의 재사용성을 높여주고 클래스 간 계층구조를 분류하고 관리하기 편해진다. 상속에는 여러가지 종류가 있습니다. 한개씩 살펴보겠습니다. 단일 상속 : 1개의 클래스를 상속받는 ..
자바의 제어문과 반복문 사용 방법 목표 자바의 선택문과 제어문 그리고 반복문을 학습하세요. 학습할 것 선택문 제어문 반복문 선택문 자바에서 선택문은 크게 if문과 switch문 2가지가 있습니다. 먼저 if문에 대해서 알아보겠습니다. if문 if문은 크게 3가지 형태로 사용할 수 있습니다. if ( {조건문} ) { 로직 } if 문 내의 조건이 참일 경우 로직을 실행합니다. if ( {조건문} ) { 로직1 } else { 로직2 } if 문 내의 조건이 참일 경우 로직1을 실행합니다. if 문 내의 조건이 거짓일 경우 로직2를 실행합니다. If ( {조건문} ) { 로직1 } else if ( {조건문} ) { 로직2 } else { 로직3 } if 문 내의 조건이 참일 경우 로직1을 실행합니다. if 문 내의 조건이 거짓이고 els..
자바의 다양한 연산자 학습 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 간단한 용어 정리 정리하기에 앞서 관련용어를 정리해보겠습니다. 연산 ( operations ) 프로그램에서 데이터를 처리하여 결과를 얻어내는 것 연산자 ( operator ) 연산에 사용되는 부호, 기호 피연산자 ( operand ) 연산에 대상이되는 데이터 연산식 ( expressions ) 피연산자와 연산자로 연산을 하는 과정 public void expressions() { // primitive type 변수 선언과 초기화..
자바의 프리미티브 타입, 변수 그리고 배열 사용방법 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입이란? primitive type 프리미티브란 원시적인 이라는 뜻입니다. 그럼 원시적인 타입이라는 뜻이 되겠네요. Java에서는 메모리에 직접 값을 할당하는 변수를 프리미티브 타입이라고 합니다. 프리미티브 타입의 변수를 할당하면 JVM의 메모리 즉, Runtime Data Areas의 stack 영역에 저장됩니다. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 자바에서..
자바 소스가 JVM으로 컴파일 되는 과정 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 학습할 것 JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 JVM이란 무엇인가? Java Virtual Machine 영어를 그대로 해석하면 자바 가상머신입니다. 가상머신의 장점은 새로운 가상 환경을 띄워동작할 수 있기 때문에 OS에 상관없이 동작시킬 수 있습니다. 그러한 가상 환경을 이용하여 자바 바이트코드를 실행시킬 수 있는 환경을 제공해줍니다. 출처 : https://www.itworld.co.kr/news/110837 JVM이 없다면? 내가 생성한 파일을 컴파일하고 나온 바이트코드들이 OS마다 다릅니다. 이 말은 즉 ..
실전 자바 소프트웨어 개발 정리 - 3 문서 관리 시스템 목표 문서 관리 기능 설계의 핵심은 상속 관계, 즉 어떻게 클래스를 상속하거나 인터페이스를 구현하는가에 달렸다. 문서관리 기능을 제대로 설계하려면 리스코프 치환 원칙을 알아야한다. 언제 상속을 사용해야 하는지와 관련해서는 '상속보다 조합' 원칙도 알아야한다. 유지보수가 쉽고 좋은 테스트를 만드는 방법을 활용해 기존에 배운 자동화된 코드 구현 지식을 확장한다. 설계 다양한 방법으로 설계가 가능하므로 다양한 설계와 모델링 중 한 가지를 선택한다. 테스트 주도 개발(TDD)은 프로그램을 시작하는 아주 좋은 방법 중 하나이며 이미 예제를 풀어보면서 사용한 방법이다. 임포터 다양한 종류의 문서를 임포트하는 것이 문서 관리 시스템의 핵심 기능이다. 파일의 확장자로 파일을 어떻게 임포트할 지 결정할..
실전 자바 소프트웨어 개발 정리 - 2 입출금 내역 분석기 확장판 목표 코드베이스에 유연성을 추가하고 유지보수성을 개선하는 데 도움을 주는 개방/패쇄 원칙(open/closed principle (OCP)) 을 배운다. 언제 인터페이스를 사용해야 좋을지를 설명하는 일반적인 가이드라인과 높은 결합도를 피할 수 있는 기법도 배운다. 자바에서 언제 API에 예외를 포함하거나 포함하지 않을지를 결정하는 자바의 예외 처리 방법을 배운다. 메이븐, 그레이들 같은 검증된 빌드 도구를 이용해 자바 프로젝트를 시스템적으로 빌드하는 방법도 배운다. 개방/패쇄 원칙 특정 금액 이상의 모든 입출금 내역을 검색하는 메서드를 구현해보자. 간단한 findTransactions() 메서드를 포함하는 BankTransactionFinder 클래스를 따로 만들 수 있다. 하..
실전 자바 소프트웨어 개발 정리 - 1 이 글에서는 프로젝트( 입출금 내역 분석기 )를 만들면서 SRP에 대해서 알아보겠습니다. KISS 원칙 keep it short and simple 응용프로그램 코드를 한 개의 클래스로 구현한다. 코드 유지보수성과 안티 패턴 코드 유지보수성을 높이기 위해 노력해야한다. 특정 기능을 담당하는 코드를 쉽게 찾을 수 있어야 한다. 코드가 어떤 일을 수행하는지 쉽게 이해할 수 있어야 한다. 새로운 기능을 쉽게 추가하거나 기존 기능을 쉽게 제거할 수 있어야 한다. 캡슐화(encapsulation)가 잘 되어 있어야 한다. 즉 코드 사용자에게는 세부 구현 내용이 감춰져 있으므로 사용자가 쉽게 코드를 이해하고, 기능을 바꿀 수 있어야한다. 새로운 요구 사항이 생길 때마다 복사, 붙여넣기로 해결한다면 하기와 같은 문제..

반응형