본문 바로가기

전체 글

(92)
[자바 마스터북] 9장 날짜 처리 공략하기 9.1 Date와 Calendar 구분하여 사용하기 Date는 일시, 특정의 시간을 보관하는 클래스이고 Calendar는 연, 월, 일, 시, 분, 초 단위로 개별적으로 설정/취득/가산/감산할 수 있는 클래스이다. Date 클래스 사용하기 //1 Date date1 = new Date(); System.out.println(date1); //2 Date date2 = new Date(5000); System.out.println(date2); 1번 코드는 현재 시간을 출력하고 2번 코드는 1970년에서 5000ms 지난 시간을 출력한다. Date클래스는 setTime으로 시간을 바꿀 수 있으므로 불변객체가 아니다. Calendar 클래스 사용하기 Calendar calendar = Calendar.get..
[자바 마스터북] 6장 예외 공략하기 6.1 예외의 기본 6.1.1 예외의 세 가지 종류 1) 검사 예외 (Exception) 주로 프로그램 작성 시에 예상할 수 있는 비정상 상태를 통지하기 위해 사용. 예를 들어 파입 입출력이 실패할 경우 IOException이 발생하게 되는데 이를 예상하고 미리 어떻게 처리할 지 catch하거나 throw하는 것이다. 이렇게 처리하지 않으면 컴파일 오류가 발생하게 된다. 하지만 모든 예외를 포착하게 된다면 정의해야하는 예외 상황이 많아지고 복잡해지므로 '실행 시 예외'로 처리하도록 만들었다. 2) 실행 시 예외 (RuntimeException) 주로 프로그램 작성 시에 예상할 수 없는 오류를 통지하기 위해 사용. '검사 예외'와는 달리 프로그램에서 포착하지 않아도 따로 '컴파일 오류'는 발생하지 않는다...
[자바 마스터북] 1장부터 5장.. 람다식과 Stream API까지. 1.1 자바란? 1.1.1 자바의 특징 객체 지향 클래스와 상속 구조를 화용하여 확장성이 우수하며 재하용하기 쉬운 프로그래밍이 가능함. 플랫폼 독립성 프로그램이 자바 가상머신에서 실행되므로 프로그램 자체는 운영체제에 독립적으로 실행될 수 있음. 뛰어난 에코 시스템 우수한 라이브러리, 미들웨어(DBMS 등)가 다수 존재함으로 효율적인 개발이 가능하다. 1.1.3 자바가 실행되는 순서 자바 프로그램을 작성하고 실행하기까지의 아주 간단한 흐름 설명 1. 자바소스코드를 작성 2. javac 커맨드를 실행하여 소스 코드를 컴파일하고 `클래스 파일`이라고 불리는 중간코드를 생성한다. 3. javac 커맨드를 실행하여 java vm이 클래스 파일을 해석하여 처리한다. 2.4 명명 규칙 2.4.1 클래스와 변수는 '카..
[Cloud] AWS 서버 환경 구축하기 AWS 클라우드 서비스 특정 시간에만 트래픽이 몰린다면 유동적으로 사양을 늘릴 수 있는 클라우드가 아주 좋음 클라우드 서비스는 인터넷(클라우드)를 통해 서버, 스토리지, 데이터베이스, 네트워크, 모니터링 등의 다양한 컴퓨팅 서비스를 제공하는 것이다. → AWS의 EC2는 서버 장비를 대여하는 것이지만 실제로 그 안의 로그관리, 모니터링, 하드웨어 교체, 네트워크 관리 등 개발자가 직접 해야할 일을 AWS가 전부~~ 지원하는 것이다. 클라우드의 여러 가지 형태 IaaS (Infrastruceture as a Service) 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스 가상머신, 스토리지, 네트워크, 운영체제 등의 IT인프라를 대여해주는 서비스! ex) AWS의 EC2, S3 등 PaaS (Pla..
[JAVA] 얕은 복사와 깊은 복사 얕은 복사와 깊은 복사를 이해해야만 그 차이에서 오는 에러를 피할 수 있고 대처할 수 있다. 얕은 복사 한 쪽에서 수정 발생 시 다른 쪽에도 영향을 미친다. 얕은 복사는 "주소"를 복사하기 때문에 주소로 값을 참조하여 값을 바꾸게 된다. 즉, 복사된 주소와 원래 주소 모두 같은 값을 참조하므로 한 쪽 값이 변경되면 다른 한쪽 값이 그 값을 참조하게 된다. # 2차원 배열의 얕은 복사 int[][] arr = new int[2][2]; int[][] arr_copy = a; copy[0][0] = 1; for (int[] ar : arr) { for (int v : ar) System.out.print(v + " "); System.out.println(); } System.out.println(); fo..
[JAVA 객체 지향 디자인 패턴] 4장 : 디자인 패턴 4.1 디자인 패턴의 이해 프로그래밍 기술을 빠르고 쉽게 익힐 수 있는 방법은 무엇일까?? 바로 훌륭한 프로그래머가 작성한 코드를 읽는 것이다!! 그 프로그램에는 프로그래머가 수년간 고생하면서 쌓아놓은 경험 등이 고스란히 녹아있다. 그러므로 경험이 부족한 프로그래머들은 훌륭한 프로그래머들이 만들어놓은 특정 문제에 대한 해결책을 사용하고 응용하면 매우 좋을 것이다. 디자인 패턴이란? 경험이 많은 소프트웨어 엔지니어들이 소프트웨어를 설계할 때 자주 발생하는 문제들의 해법들을 모아놓은 것! 디자인 패턴의 구조 디자인 패턴의 구조는 3개의 필수적인 요소로 구성된다. 콘텍스트 : 문제가 발생하는 여러 상황을 기술 (즉, 패턴이 적용될 수 있는 상황) 문제(Problem) : 패턴이 적용되어 해결될 필요가 있는 ..
[JAVA 객체 지향 디자인 패턴] 3장 : SOLID 원칙 3.1 단일 책임 원칙 (SRP) 3.11 책임의 의미 객체 지향 설계관점에서 책임의 기본 단위는 바로 '객체'이다. (이 '객체'는 단 하나의 책임만을 가져야 한다) 학생 '객체'가 여러 책임(수업듣기 + 알바하기)을 가진다고 가정해보자. public class Student { public void getCourses() {...} public void addCourses() {...} public void save() {...} public Student load() {...} public void printOnReport() {...} public void printOnBook() {...} } 학생 객체는 수업에 관한 책임만 가지는 것이 좋고 이외의 책임은 이를 더 잘 수행할 수 있는 다른 객체..
[JAVA 객체지향 디자인 패턴] 2장 : 객체지향의 원리 추상화 어떤 영역에서 필요로 하는 속성이나 행동을 추출하는 작업을 의미한다. 여러 객체의 공통된 특징을 파악해 하나의 집합으로 일반화하게 된다. 얻을 수 있는 것 각 개체의 구체적인 개념에 의존하지 않기 때문에 설계를 유연하게 변경할 수 있다. ex) 자동차는 어떤 종류의 자동차든 상관 없이 엔진오일을 갈 수 있다. 캡슐화 캡슐화가 필요한 이유 소프트웨어 개발에서 요구사항 변경은 당연한 것이기 때문! 얻을 수 있는 것 캡슐화는 정보 은닉을 통해 낮은 결합도와 높은 응집도를 갖도록 한다. -> 변경이 발생해도 영향이 적음 정보 은닉 : 외부에서 알 필요가 없는 내부 정보에 접근하지 못하도록 하는 것 ex) 자동차의 가속 페달을 밝으면 속도가 올라가지만 그 안에 어떤 과정이 있는지 몰라도 지장이 없음 응집도..

반응형