전체 글 117

JAVA 스터디 : GUI

- java.awt패키지의 클래스 이용 - 만들기가 쉬움. - 느리고 무거움. - javax.swing 패키지의 클래스 이용 - 만들기가 힘듬 - 빠르고 가벼움. - MVC 패턴 : Model-View-Controller - Model : 데이터를 가져와 어떤 작업을 처리하거나 처리한 작업을 저장 - View : 데이터를 보여주는 역할 - Controller : 뷰와 모델 사이의 흐름제어 - 컴포넌트 : 화면을 구성하는 부품 - 컨테이너에 포함되어야 비로소 화면에 출력될 수 있는 GUI 객체 - 모든 GUI 컴포넌트의 최상위 클래스 : java.awt.Component - 스윙 컴포넌트의 최상위 클래스 : javax.swing.Jcomponent - 컨테이너는 컴포넌트로 부터 상속 받은 하나의 윈도우 영..

JAVA 2020.12.04

JAVA 스터디 : 스레드(Thread)

스레드란? 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위를 말하며, 세부적으로는 운영체제에 의해 관리되는 하나의 작업 혹은 태스크를 의미. 스레드와 태스크(혹은 작업)은 바꾸어 사용해도 무관. JVM에 의해 하나의 프로세스가 발생하고 main( ) 안의 실행문 들이 하나의 스레드이다. main( ) 이외의 또 다른 스레드를 만들려면 Thread 클래스를 상속하거나 Runnable 인터페이스를 구현한다. 다중 스레드 작업 시에는 각 스레드 끼리 정보를 주고받을 수 있어 처리 과정의 오류를 줄일 수 있다. 프로세스끼리는 정보를 주고받을 수 없다. 멀티스레딩이란? 여러 스레드를 동시에 실행시키는 응용프로그램을 작성하는 기법을 말함. 장점 메모리 공유로 인한 시스템 자원 소모가 줄어 듭니다. 동..

JAVA 2020.12.03

JAVA 스터디 :: 컬렉션

■ Java Collections Framework(JCF) Java에서 컬렉션(Collection)이란 데이터의 집합, 그룹을 의미하며 JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬렌션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다. 다음은 Java 컬렌션 프레임워크의 상속구조를 나타낸다. 1. Set 인터페이스 순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다. HashSet - 가장빠른 임의 접근 속도 - 순서를 예측할 수 없음 TreeSet - 정렬방법을 지정할 수 있음 2. List 인터페이스 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다. LinkedList - 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할..

JAVA 2020.12.01

JAVA 스터디 : 예외

- 예외 : 문법적으로는 이상이 없어서 컴파일 시점에는 아무런 문제가 없지만 프로그램 실행 중에 발생하는 예기치 않는 사건으로 발생하는 오류 - 예외가 발생하는경우 ① 정수를 0으로 나눈 경우 ② 배열의 첨자가 음수 또는 범위를 벗어나는 경우 ③ 부적절한 형 변환이 일어나는 경우 ④ 입출력을 위한 파일이 없는 경우 등등 - 예외처리의 용도 ① 정상 종료 ② 예외내용 보고 ③ 예외 발생 시 무시하고 계속 실행 ④ 정상적인 값으로 변경 출처: raccoonjy.tistory.com/14

JAVA 2020.11.30

JAVA 스터디 : API

API란 자바 시스템을 제어하기 위해서 자바에서 제공하는 명령어들을 의미한다. Java SE(JDK)를 설치하면 자바 시스템을 제어하기 위한 API를 제공한다. 자바 개발자들은 자바에서 제공한 API를 이용해서 자바 애플리케이션을 만들게 된다. 패키지 java.lang.*의 클래스들도 자바에서 제공하는 API 중의 하나라고 할수 있다. 자바 플랫폼 위에서 동작하는 자바 애플리케이션을 개발하는 개발자들은 자바 API를 사용하게 된다. 그런데 자바에서 제공하는 API는 방대하기 때문에 이것을 이용하기 위해서는 API의 목록과 사용법이 체계적으로 정리된 문서를 이용할 수 있어야 한다. 아래 페이지는 Java의 각종 문서들을 모아둔 웹페이지다. http://docs.oracle.com/javase/ 이중에서 A..

JAVA 2020.11.27

JAVA 스터디 : 필수 API

※ API (Application Programming Interface) 란? - 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 - Java SE(JDK)를 설치하면 자바시스템을 제어하기 위한 API를 제공 ※ API 문서 보는법 - 자바 플랫폼 위에서 동작하는 자바 애플리케이션을 개발하는 개발자들은 자바 API를 사용하게 된다. 하지만 자바 API의 종류는 방대하기 때문에 체계적으로 정리된 문서를 이용할 줄 알아야 한다. 출처: https://debugdaldal.tistory.com/155 [달달한 디버깅]

JAVA 2020.11.26

JAVA 스터디 : 패턴(2)

디자인 패턴의 종류 GoF 디자인 패턴 - GoF(Gang of Fout)라 불리는 사람들 - 에리히 감마(Erich Gamma), 리차드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시디스(John Vissides) 소프트웨어 개발 영역에서 디자인 패턴을 구체화하고 체계화한 사람들 - 23가지의 디자인 패턴을 정리하고 각각의 디자인 패턴을 생성(Creational), 구조(Structural), 행위(Behavioral) 3가지로 분류했다. 디자인 패턴의 종류 생성(Creational) 패턴 : 객체 생성에 관련된 패턴 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다. 구조(Structural)..

JAVA 2020.11.26

JAVA 스터디 : 패턴 (싱글톤/전략)

1. 객체지향 디자인 패턴 객체지향 프로그램이 복잡해지면서 이를 간결하게 정리할 필요성이 생긴 관계로 '디자인 패턴'이라는 것이 생겼다. **객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴. 여러 사람이 협업해서 개발할 때 다른 사람이 작성한 코드, 기존에 존재하는 코드를 이해하는 것은 어렵다. 이런 코드를 수정하거나 새로운 기능을 추가해야 하는데 의도치 않은 결과나 버그를 발생시키기 쉽고성능을 최적화시키기도 어렵다. 디자인 패턴은 의사소통 수단의 일종으로서 이런 문제를 해결해준다. 예를 들어 문제 해결의 제안에 있어서도 “기능마다 별도의 클래스를 만들고, 그 기능들로 해야할 일을 한번에 처리해주는 클래스를 만들자.”라고 제안하는 것보다 "Facade 패턴을 써보자...

JAVA 2020.11.25

JAVA 스터디 : 인터페이스와 추상클래스

추상클래스 (abstract) 와 인터페이스 (interface) 는 비슷한 개념이므로 혼란이 오기 쉽다. 추상클래스 포스팅에는 따로 적지 않았고, 인터페이스 포스팅에만 적었는데, JAVA는 다중상속이 불가능하다. 단, 다중상속이 불가능함에 따라 인터페이스를 통해 여러가지 객체를 선언한다. 다중상속이라고 생각할 수도 있지만, 다형성이 존재하는 것일 뿐이며 다중구현이라고도 표현한다. 인터페이스와 추상클래스의 공통점 1) 추상메소드를 가지고 있음. 2) 객체 생성이 목적이 아닌, 데이터 타입을 정의하는 것이 목적. 3) 객체 생성은 'anonymous*'를 이용. 인터페이스와 추상클래스의 공통점 1) 상속 및 구현 : 추상메소드는 상속을 통한 사용이고, 인터페이스는 구현을 통한 상속이다. 2) 구성 요소의 ..

JAVA 2020.11.24

JAVA 스터디 : 인터페이스

인터페이스란? 상속과는 다른 개념으로, 인터페이스를 통해 구현할 때 여러가지를 동시에 구현할 수 있다. 1) 객체와 객체의 소통 수단 2) 다형성 - JAVA 는 기본적으로 다중 상속이 불가능한데, 인터페이스를 통해 다형성을 가능하게 만든다. 3) 사용법 자체는 어렵지 않으나 실제 개발에 적용시킬 땐 어려울 수 있음 4) 객체를 부속품화 시키므로 다양한 객체를 개발자 마음대로 변경할 수 있음. 인터페이스의 깊은 개념은 jsp - spring 혹은 안드로이드 프레임 웍을 배울 때 좀 더 배울 수 있다. 인터페이스 ** 1) 실제 기능은 없이, 추상메소드와 상수만이 존재한다. 2) private 는 이용이 불가능하다. 3) 메소드는 무조건 추상메소드만 존재한다. 4) 객체 타입 - 인터페이스는 객체가 아니지..

JAVA 2020.11.23