profile
만사가 귀찮은 ISFP가 쓰는 학습 블로그
post-thumbnail

Java 객체 지향 - 의존관계와 캡슐화

이 글은 개발자가 반드시 정복해야할 객체지향과 디자인 패턴책을 읽고 내용을 정리한 글 입니다. * 목표 * 의존관계 캡슐화 의존관계 객체지향 프로그래밍에서 한 객체가 다른 객체를 이용한다는 것은, 다른 객체를 생성하거나 다른 객체의 메소드를 호출하는 행위를 말한다. 이와 같이 한 객체가 다른객체를 생성 또는 메소드를 호출할 때, 그 객체에 의존한다고 표현한다. 위 예제를 보면 Player는 Weapon을 생성하여 attack이라는 메소드를 호출하고 있으므로 Weapon에 의존한다고 볼 수 있다. 또한 파라미터를 전달 받는 경우에도 해당 파라미터에 대해 의존한다고 볼 수 있다. 의존성을 가진다는 것은 의존하고 있는 객체가 변경이 발생했을 때 그 객체를 이용하는 나 자신도 변경될 가능성이 있다는 것을 뜻한다. 이렇게 의존성을 가지고 있게 되면 변화에 유연하지 못한 구조를 가진

2021년 3월 3일
·
1개의 댓글
·

자바 스터디 12주차 : 애노테이션

이 글은 백기선님의 라이브 스터디 참여 및 학습 내용에 관한 정리한 글입니다. 학습 목표 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 관련 용어 정리 메타 데이터(meta-data) : 한 마디로는 '데이터에 대한 데이터'이다. 다른 데이터를 설명해주는 데이터라고 볼 수 있다. 애노테이션(annotation) : 사전적 의미로는 주석을 의미하며 프로그램에 대한 데이터를 제공하는 메타데이터의 한 종류 자바 리플렉션(Java Reflection) : 구체적인 클래스 타입을 알지 못해도 그 클래스의 메소드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API이다. 런타임 시점에 클래스 이름만

2021년 2월 23일
·
0개의 댓글
·

자바 스터디 10주차 : 멀티 쓰레드 프로그래밍

이 글은 백기선님의 라이브 스터디 참여 및 학습 내용에 관한 정리한 글입니다. 학습 목표 Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 멀티 쓰레드의 경우 쓰레드로 부터 연관된 주제들이 다양하다. 동기화, 비동기화, ExecutorService, Collable, Future, CompelteableFuture 등등 다양한 내용이 파생되는데 일단 나는 Thread를 완벽히 이해를 한 상태가 아니며, 주의해야하고 자주 듣게되는 내용이지만 실제로 누군가에게 설명하라고 한다면 말문이 막혀 명확하게 설명을 못할 것 같다. 따라서 이번 기회를 통해 차근차근 다시 복습하며 정리해나가려고 한다. 쓰레드 연관 용어 **멀티 태스킹(Mult

2021년 2월 18일
·
0개의 댓글
·

자바 스터디 9주차 : 예외 처리

이 글은 백기선님의 라이브 스터디 참여 및 학습 내용에 관한 정리한 글입니다. 학습 목표 자바에서 예외 처리 방법(try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이 RuntimeException과 이외 것의 차이 커스텀한 예외 만드는 방법 예외 처리 (try, catch, finally) 자바에서 프로그램이 실행되는 도중에 발생하는 예외 사항들에 대한 처리를 위해서 try,catch,finally문을 사용할 수 있다. try 블록: 기본적으로 먼저 실행되는 코드로 이 블럭 안에서 발생한 예외는 해당 Exception과 일치한 catch 블록에서 처리된다. catch 블

2021년 2월 17일
·
0개의 댓글
·

자바 스터디 8주차 : 인터페이스

이 글은 백기선님의 라이브 스터디 참여 및 학습 내용에 관한 정리한 글입니다. 학습 목표 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 정의 방법 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하며, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다고 한다. 선언 방법 인터페이스 선언

2021년 2월 16일
·
0개의 댓글
·

자바 스터디 7주차 : 패키지

이 글은 백기선님의 라이브 스터디 참여 및 학습 내용에 관한 정리한 글입니다. 학습 목표 package 키워드 import 키워드 클래스 패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 보통 바탕화면에서 여러 파일들이 있으면 공통된 카테고리를 추출해서 새 폴더를 생성해 해당 카테고리명으로 파일들을 분류하여 관리한다. 자바의 패키지 또한 이와 동일한 개념이다. 패키지는 비슷한 성격의 자바 클래스 파일들을 분류하는 디렉토리인 것이다. 특징 클래스를 구분짓는 폴더 개념 패키지의 가장 상위 디렉토리(root)에서 실행해야 한다는 약속이 있기 때문에 해당 패키지로 가서

2021년 2월 15일
·
0개의 댓글
·

자바 스터디 6주차 : 상속

이 글은 백기선님의 라이브 스터디 참여 및 학습 내용에 관한 정리한 글입니다. 학습 목표 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스 패치(Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 자바에서 상속이란 클래스가 다른 클래스에서 파생 될 수 있어 해당 클래스의 필드 및 메소드를 상속받아 사용이 가능한 것이다. 예로 들어 과일에 종류로는 사과, 오렌지, 포도 등등이 있다. 여기서 사과, 오렌지, 포도 모두 '과일'이라는 공통의 관심사가 있다. 자바는 이러한 공통의 관심사를 다른 클래스에서 사용이 가능하고 이를 클래스의 '상속'이라고 표현한다. 오라클 java 공식 문서에서는 다음과 같

2021년 2월 9일
·
0개의 댓글
·

자바 스터디 5주차 : 클래스

이 글은 백기선님의 라이브 스터디 참여 및 학습 내용에 관한 정리한 글입니다. 학습목표 클래스 정의하는 방법 객체를 만드는 방법(new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 클래스 클래스(class)란 객체 지향 프로그래밍에서 특정 객체를 생성하기 위한 변수 및 메소드를 정의하는 일종의 틀(그릇)이다. 예를 들어, 붕어빵을 만들기 위해서는 붕어빵을 찍어내기 위한 장비(틀)가 필요하다. 클래스는 여기서 장비에 해당되는 것이다. 클래스 정의 방법 아래 코드는 위 작성 예시를 참고하여 만든 Point(점) 이라는 클래스다. 객체를 만드는 방법 클래스를 정의했으면 이제 객체를 만들 수 있다. 여기서 객체를 생

2021년 2월 8일
·
0개의 댓글
·

자바 스터디 4주차 : 제어문

이 글은 백기선님의 라이브 스터디의 참여 및 학습 내용 정리를 위한 글입니다. 학습 목표 선택문 반복문 제어문 제어문이란 프로그램 실행의 흐름을 개발자가 의도하는 방향으로 바꿀 수 있도록 흐름을 제어할 수 있게 해주는 구문 제어문 종류 조건문 : if, switch 반복문 : for, while 분기문 : break, continue, return 조건문 프로그램이 개발자가 의도한 조건에 따라 코드의 실행 흐름을 다르게 제어하는 구문 조건문 종류 if if else else if switch 사용법 조건문을 사용한 코드 예시를 보자, 변수를 조건에 만족할 때 문장을 출력하는 코드다 위 코드는

2021년 2월 8일
·
0개의 댓글
·

Servlet과 Servlet Container

서블릿과 서블릿 컨테이너에 대한 개념적 흐름을 정리해보고자 한다. 목표 서블릿은 무엇인가? 서블릿 컨테이너란? 자바 서블릿 자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 또는 그 사양(스펙)을 말하며 흔히 서블릿이라고 불린다. 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종으로 JSP와 비슷한 점이 있으나, JSP는 HTML 문서 안에서 Java코드를 포함하고 있고 서블릿은 자바 코드 안에 HTML을 포함하고 있다는 것이 차이점이다. 서블릿은 Java EE 사양의 일부분으로 이 기능을 활용하여 웹 애플리케이션 구현이 가능하다. 이러한 비슷한 기술들의 예로는 CGI, mod_php, ASP 등이 있다 서블릿 표준 History ![](https://images.velog.io/images/khsb2012/post/383c6ff1

2021년 2월 5일
·
0개의 댓글
·

EJB 개요

순서 EJB 개념 등장 배경 EJB 구조 EJB 장/단점 개요 EJB(Enterprise Java Bean) 위 단어에서 Enterprise는 기업을 말하는 것이고 Java Bean은 자바 객체를 재사용 가능하게 컴포넌트화 시킬 수 있는 코딩 방침을 정의한 것이다. EJB는 Sun Microsystems사가 기업환경 개발을 단순화하기 위해 제창한 스펙이라고 말한다. Java EE의 API 중 하나이고, 주로 웹 시스템에서 JSP로 화면을 구성하고 EJB는 비즈니스 로직을 처리하는 역할을 한다. 즉, EJB는 기업환경의 시스템을 구현하기 위해 위 스펙에 따라 비즈니스 로직을 처리하는 서버 애플리케이션인 것이다. 등장 배경 과거 자바로 서버측 애플리케이션 개발을 할 때 아래와 같은 문제가 있었다고 한다. 애플리케이션에 필요한 비즈니스 로직을 개발하면서 데이터 베이스

2021년 2월 4일
·
0개의 댓글
·

자바 스터디 3주차 : 연산자

백기선님의 자바 라이브 스터디의 참여 및 학습 내용을 정리한 글입니다. 학습목표 자바의 다양한 연산자를 학습해보자. 단항, 이항 연산자 산술/비트/관계/논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 연산자란? 수학적인 계산 처리를 수행하는 문자 또는 기호라고 할 수 있다. 자바에서 연산자는 크게 단항/이항/삼항/대입 연산자로 분류할 수 있고, 이항 연산자에서는 산술, 비트, 비교, 논리, 관계 연산자로 나누어 볼

2021년 2월 3일
·
0개의 댓글
·
post-thumbnail

자바 스터디 2주차 : 데이터 타입, 변수 and 배열

이 글은 백기선님의 라이브 스터디 참여 및 학습 내용 정리용으로 작성한 글입니다. 학습 목표 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프 타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입추론 var 자료형(Type)이란 해당 데이터가 메모리에 어떻게 저장되는지, 해당 데이터가 프로그램에서 어떻게 처리 되어야 하는지를 명시적으로 정의하는 것이다. 자바에서 타입은 크게 기본형(Primitive Type) 타입과 참조형(Reference Type) 타입으로 분류된다. 프리미티브 타입 종류, 범위, 기본값 |자료형|키워드|크기|기본

2021년 2월 1일
·
0개의 댓글
·
post-thumbnail

자바 스터디 1주차: JVM 이란? 자바코드는 어떻게 실행될까?

이번에 백기선님의 자바 라이브 스터디를 계기로 첫 블로그를 시작합니다. 더 나아가 개발관련해서 공부한 내용을 정리하여 블로그에 남겨보려고 합니다. 학습 목표 JVM이란 무엇인가? 자바파일을 컴파일 및 실행하는 방법 바이트코드란 무엇인가? JIT 컴파일러란 무엇이며 어떻게 동작할까? JVM 구성요소 JDK 와 JRE의 차이 1.JVM 이란 무엇인가? JVM 이란 Java Vertual Machine, 자바 가상 머신의 약자를 따서 줄여 부르는 용어. JVM 은 Java 와 OS 사이에서 중개자 역할을 수행하여 자바 바이트 코드(class파일) 를 OS에 특화된 코드로 변환하여 실행한다. 따라서 자바 바이트 코드는 OS 플랫폼으로

2021년 1월 28일
·
0개의 댓글
·