728x90

전체 글 41

17. JAVA 그래픽

JAVA GUI(Graphic User Interface)란? 바탕화면 아이콘 더블클릭하면 해당 프로그램을 시작시켜준다. JAVA GUI란 이런 아이콘처럼 사용자가 사용하기 편리하게 그래픽 요소를 가미하여 컴퓨터를 사용하기 쉽게 만들어놓은 것이다. 반대 개념은 CUI(Character User Interface : 문자열 명령어로 애플리케이션을 구동, 종료하는것)이다. AWT 컴포넌트 AWT는 자바에서 그래픽 요소를 만들기 위한 컴포넌트들이다. 버튼, 체크박스등이 그 예이다. 컨테이너 안에는 또 다른 컨테이너가 놓일 수 있다. 그 안엔 또 버튼, 텍스트필드, 체크박스와 같은 컴포넌트가 존재한다. 다양한 컴포넌트들을 예제코드를 통해 살펴보자 Button package com.javalec.ex2; impo..

Programming/Java 2021.01.17

16. 스레드(Thread)

스레드란? 일단 멀티프로세스가 뭔지 알고가자. 멀티프로세스란 컴퓨터가 여러가지 일을 동시에 하고 있는것을 뜻한다. 컴퓨터에서 워드도 하고 파일전송도 하고 채팅프로그램까지 돌리고 있으면 CPU하나에서 여러가지 프로그램이 돌아간다. 이러한것을 멀티프로세스라고 한다. 그렇다면 스레드란 무엇일까? 위에서 말한 프로세스 안에서 다시 여러가지 일을 하는것을 뜻한다. 예를 들어 카톡에서 파일을 전송하면서 채팅도 동시에 할 수 있다. 채팅프로그램 프로세스에서 파일전송 스레드와 채팅 스레드가 같이 돌아가고 있는것이다. Java는 기본적으로 멀티스레드를 지원한다. 스레드는 두가지 형태로 존재하는데 하나는 객체 하나를 n개의 스레드가 공유하는 방식, 또는 하나의 객체당 하나의 스레드가 존재하는 방식이다. 아래의 그림을 참고..

Programming/Java 2021.01.16

15. JAVA 입출력(I/O)

I/O public Class MainClass{ public static void main(String[] args){ try { } } input과 output으로 컴퓨터에 입력하는게 input, 컴퓨터가 출력하는것이 output이다. 앞에서 줄기차게 봤던 System.out.println(); 구문이 output이다. 앞으로 어떤 데이터를 읽는다면 input이라 생각하면 되고, 데이터를 '쓴다'면 output이라 생각하면 된다. 입출력 API InputStream, Reader & OutputStream, Writer byte 단위로 나뉜다. - InputStream, OutputStream : 1byte단위로 이미지, 동영상등의 데이터에 주로 사용한다. - Reader, Writer : 2byte..

Programming/Java 2021.01.16

14. JAVA Collections

컬렉션이란 우리말로 쉽게 말하면 자료구조이고 더 쉽게 말하면 배열이다. 앞에서 배운 단순한 배열 뿐 아니라 다른 훌륭한 자료구조를 자바가 많이 만들어놨다. 따라서 그 API를 우리가 잘~ 사용하면된다 ㅋㅋ JAVA도 결국 효과적인 데이터를 처리하기 위한 수단 자바도 결국 다른 언어랑 마찬가지로 데이터를 효과적으로 정리하기 위한 언어다. 데이터를 어떻게 정리하고 활용하냐에 따라 효율성이 많이 달라질 수 있다. 따라서 데이터의 성격에 따라 잘 관리를 해야한다. 이를 위해 자바에서도 다양한 자료구조형을 제공한다. 실제로 오늘 다루는 내용의 일부는 학부시절 "데이터구조론(걍 자료구조)"에서 배웠던 내용이 꽤 나온다. 그때 담당 교수님이 이상한 바람이 불어서 그해의 자료구조 수업을 파이썬으로 하셨는데(약 6년전...

Programming/Java 2021.01.15

13. 예외처리

초보개발자 주씨는 현업 개발자로 취업한 후 방구석에서 혼자 노트북으로 다루던것과 차원이 다른 무거운 프로젝트를 보고 놀라움과 두려움을 느꼈다... 그래 바로 내이야기다.. 내가 다니고 있는 회사에선 다양한 툴과 언어를 사용한다. 하지만 모든 언어에서 중요하게 여겨지고 시스템 실행의 완성도를 높이는 필수적인 작업은 예외처리 작업이다. (Error Handling 이라고 볼 수 있다.) 강의에서 나오는 예시를 들어서 설명을 해보자 예외처리의 필요성 두가지 숫자를 넣으면 곱하기 빼기 더하기 나누기의 사칙연산을 모두 수행해주는 프로그램이 있다. 이때 입력값이 10과 0이라면 10/0에 의해 오류가 발생하고 프로그램의 동작이 멈출것이다. 그런데 우리는 나누기 오류 하나때문에 나머지 세가지값을 잃어야할까? 그건 너..

Programming/Java 2021.01.13

12. API

ㅇJAVA 필수 API API란 무엇? java에는 개발자들이 편리하게 쓸수 있는 클래스들이 아~~~주 많다. 이러한 기본적으로 제공되는 클래스들로 개발자들은 그냥 편하게 다양한 기능을 사용할 수 있다. 이러한 기능들을 정의해둔 클래스들을 API(Application Programming Interface)라고 한다. 즉 '누군가가 만들어놓은 기능'들을 API라 할 수 있다. API의 종류는 너~~~무나도 많지만 여기선 많이 사용하는 API만 몇가지 알아보도록 하자. String의 이해 그동안 많이 사용했던 String API를 알아보자! String string = "Hello World!" String은 대문자로 시작하기 때문에 기초데이터가 아닌 객체데이터이다. 하지만 뒤에 new 생성자 없이 기초데..

Programming/Java 2021.01.11

11. 패턴을 통한 객체지향 언어의 이해

패턴이란? 패턴(디자인패턴)은 객체지향 언어를 배우는데 중요한 방법이다! 어떻게하면 빠르게 개발하고 효율적으로 유지 보수 할 수 있을까? 이러한 고민을 하던 중 객체지향의 상속, 인터페이스, 추상화등의 기능으로 시간과 인력투입의 효율을 극대화시키기 위한 방법이 정립되기 시작했다. 그리오 이러한 방식을 어떠한 틀로 정해 놓은 것이 바로 '디자인 패턴'이다. 쉽게 정리하면 객체지향의 장점만을 모아 효율적이고 빠르게 개발할 수 있도록 만들어놓은 틀이 패턴이라고 할 수 있다. 다양한 패턴을 습득하고 나면 왜 상속, 추상화등이 필요한지 이해할 수 있게될 것이다. 패턴은 아주 다양한 종류가 있다. 디자인 패턴 관련 학습은 꾸준히 하는것이 좋다. 간단한 패턴 몇가지를 살펴보도록 하자. 어떤 클래스는 오로지 하나의 객..

Programming/Java 2021.01.10

10. 인터페이스

인터페이스란? 1) 인터페이스는 객체와 객체의 소통수단이다. 하나의 클래스에서 객체를 여러개 만들 수 있다. 인터페이스는 그 객체 사이간의 소통수단이다. 2) 함께 일을 한다면 '~을 해라!'를 정해주는 작업명세서로도 볼 수 있다. 3) 다형성 : Java에서 다형성을 가능하게 한다. 다양한 형태의 type을 취할 수 있게한다. (상속받은 클래스 객체 생성시 부모클래스, 자식클래스 두가지의 타입이 가능했던것처럼!) 4) 디자인 패턴과 프레임 웍을 통해 습득하는 것이 최선! 5) 객체를 부속품화 - 다양한 객체를 제품의 부속품처럼 개발자 마음대로 변경할 수 있다. 인터페이스 문법 1) 실제 기능은 없다 - 구현된 기능이 없다. 추상메소드와 상수만이 존재한다. (클래스가 아님!) 2) Private는 안된다..

Programming/Java 2021.01.07

9. 추상클래스

추상클래스란? - 추상적으로 정의할테니 사용자가 꼭 재정의(overriding) 해! 지난번 예제를 생각해보자. 이번엔 본사가 메뉴만 정해주고, 매장마다 주위 환경에 맞게 가격을 책정한다고 하자. 지난 예제처럼 주택, 대학가, 증권가는 본사 class를 상속받을것이다. 그런데 이전처럼 본사만 믿고 오버라이딩 하지 않는다면 어떤 가격이 0원으로 출력될것이다! 따라서 매장에 본사가 가격측정을 강요할 필요가 있다 부모클래스가 자식클래스에게 메소드를 강제로 재정의하게 하는 방법으로 만들어진 클래스가 '추상클래스'이다. 코드로 된 예시를 보자. package com.javale.chain2; public abstract class HeadQuaterStore { public static void main(Stri..

Programming/Java 2021.01.07
728x90