programming/java

    [Java] 네트워크 프로그래밍

    20. 네트워크 프로그래밍 20.1 컴퓨터 네트워크 20.2 주요 네트워크 관련 명령어 1) ipconfig2) ping3) nslookup네임서버를 조회하는 명령어4) netstatNETwork STATus, 네트워크 상태 정보5) tracert서비스 경로 추적6) arpIP address와 Mac Address 조회arp -a 20.3 프로토콜(Protocol) 20.3.1 프로토콜 : 서로 다른 컴퓨터 간의 의사소통을 위한 통신 규약 20.3.2 프로토콜의 종류 TELNET : 텍스트 기반의 원격접속 서비스IP (Internet Protocol)TCP (Transmission Control Protocol)UDP (User Datagram Protocol)FTP (File Transfer Proto..

    [Java] GUI 프로그래밍

    17. GUI 프로그래밍 17.1 자바의 GUI 프로그래밍 기술 TUI - Text-based User Interface 텍스트 기반의 인터페이스GUI - Graphical User Interface 그래픽 기반의 인터페이스 17.1.1 AWT(Abstract Window Toolkit) GUI 프로그래밍을 위한 도구GUI 프로그래밍에 필요한 다양한 컴포넌트를 제공Java와 C로 구현 17.1.2 SwingAWT를 확장한 GUI 프로그래밍 도구AWT보다 더 많은 종류의 컴포넌트를 제공순수한 Java로 구현 17.2 화면 구성 요소 17.2.1 Component와 Container - Component : 화면 구성 요소- Container : 다른 컴포넌트를 담을 수 있는 컴포넌트(그릇 역할) 17.2...

    [Java] 그래픽 처리

    1. 그래픽 처리 컴포넌트에 그림을 그리려면 paint()를 알맞게 오버라이딩한다. public void paint(Graphics g) {...} 모든 컴포넌트에는 Graphics 객체가 있으며 getGraphics()로 얻을 수 있다. Panel p = new Panel(); Graphics g = p.getGraphics();g.drawLine(0, 0, 10, 10); // Panel에 두 점 (0, 0)과 (10, 10)을 잇는 선을 그린다. Graphics 클래스는 그래픽 처리를 위한 다양한 메서드를 제공 다음과 같은 경우 paint()가 자동호출되어 화면이 갱신된다. · 처음 화면에 나타날 때 · 다른 화면에 가려져 있던 부분이 다시 화면에 나타날 때· 아이콘화 되어 있다가 원래 크기로 화면..

    [Java] 입출력

    1. 스트림(Stream) 2. 입출력 방법 2.1 Stream(스트림) - 데이터의 논리적인 흐름 2.2 byte 단위 입출력(한글은 2byte가 한글자로 구성됨)가) InputStream (입력스트림)나) OutputStream (출력스트림) 3.3 문자 단위 입출력가) InputStreamReader나) OutputStreamWriter 3.4 buffer를 이용한 입출력가) BufferedReader나) BufferedWriter 3. 입출력 스트림 계층 구조 13;45 4. Unicode와 ASCII code 4.1 유니코드(Unicode)16비트(2바이트) 기반의 다국적 문자 체계전세계 대부분의 문자를 수용 : 다국어 처리에 효과 4.2 미국정보교환표준부호(American Standard Co..

    [Java] 멀티 스레드 (Multil Thread)

    1. 프로세스(process)와 스레드(thread) 스레드는 거미줄, 실타래라는 의미를 가지고 있습니다. 1.1 작업 관리자에서 프로세스와 스레드 확인 1.1.2 프로세스(process)와 스레드(thread) 프로세스(process): 실행 중인 프로그램 스레드(thread): 프로세스 내 작업 단위 1.1.3 프로세스의 메모리 구조 2. 싱글 스레드(Single Thread)와 멀티 스레드(Multi Thread) 3. 멀티 스레드를 사용해야 하는 경우 3.1 GUI 프로그래밍 GUI 프로그래밍에서는 main 스레드에서만 UI 를 그리거나 갱신할 수 있음 3.2 시간이 오래 걸리는 작업 시간이 오래 걸리는 작업의 경우 ANR(Application Not Responding) 현상을 방지하기 위해 백..

    [Java] 유용한 클래스들

    13. 유용한 클래스들 13.1 Object Class 자바의 최상위 클래스. 11개의 메서드가 지원됨 https://docs.oracle.com/javase/8/docs/api Java Platform SE 8 docs.oracle.com 13.2 String Class 13.2.1 문자열은 문자 배열(char[])로 처리됨 13.2.2 String 은 객체 자료형이지만 자주 사용되므로 new 키워드를 생략할 수 있음 // String str = new String("hello"); String str = "hello"; 13.2.3 String 의 내용 비교 a.equals(b); // 주솟값을 비교하므로 부정확한 결과가 나올 수 있음 a == b (image) 13.2.4 String 의 사용 방법..

    [Java] 내부 클래스

    12. 내부 클래스 가. 내부(중첩) 클래스(inner class, nested class) '웹 개발자들은 내부 클래스를 쓸 일이 거의 없지만, 안드로이드 프로그래밍은 자주 사용하고, 윈도우즈 프로그래밍도 종종 사용합니다. ''' 자바는 decompile이 가능합니다. compile: source → object code(기계어) decompile: object code → source (= disassemble) ex. A.java → A.class (x) A.class → A.java (o) 내부 클래스를 쓰면 좀 숨겨집니다. ''' 1) 내부 클래스의 정의 클래스 안에 선언된 클래스 특정 클래스 내에서만 주로 사용되는 클래스를 내부 클래스로 선언한다. GUI 애플리케이션(AWT, Swing)의 이..

    [Java] class(추상화)

    11. class(추상화) 가. 객체지향프로그래밍의 4대 특성 추상화캡슐화 다형성상속성 나. 추상화 1) 객체에서 공통된 속성과 행위를 추출하는 것 image'클래스는 속성과 독장이다. 2) 자바 프로그램에서의 추상화가) 추상클래스1개 이상의 추상 메서드나) 인터페이스모두 추상 멤버 image 다. 추상 클래스(abstract class) 1) abstract method(미완성 메서드)를 포함하고 있는 클래스abstract method : 선언부만 있고 구현부(body)가 없는 메서드 2) 추상클래스는 인스턴스를 생성할 수 없다. 3) 추상클래스를 상속받는 자식클래스에서 abstract method를 완성해야 함 4) 코드의 공통적인 부분을 제시하고 표준화하기 위한 용도로 활용됨 abstract cla..

    [Java] static, final, 다형성

    10. static, final, 다형성 가. static 1) static 정지상태, 고정적인, 변화가 없는 '프로그래밍 언어에서' static의 반대말 : dynamic(필요할 때 만들었다가 필요 없을 때 사라지는 것) 2) static member static variable(정적 변수) 어디서든 공유해서 사용할 수 있는 변수 static method(정적 메서드) 3) static member의 특성 프로그램이 실행되면 메모리(클래스 영역)에 자동으로 로딩됨 프로그램이 끝날 때까지 메모리에 상주함 static method에서는 static member만 사용 가능함 public class Test { static int a; // static member int b; // nonstatic mem..

    [Java] Class(상속)

    9. class(상속) 가. 상속(inheritance) 1) 상속의 정의 class 자식클래스 extends 부모클래스 {// ...} 기존의 클래스를 확장하여 새로운 클래스를 작성하는 것(코드 재사용)두 클래스를 부모와 자식으로 관계를 맺어주는 것자식은 부모의 모든 멤버를 상속받는다(생성자와 private 제외, protected는 가능함)1개의 클래스만 상속받을 수 있음(다중상속 금지)부모클래스(기본클래스, Parent)자식클래스(파생클래스, Child) (image) 2) 다중상속자바에서는 다중상속이 금지됨(C++에서는 가능) ' 왜 자바에서는 없어졌느냐? 상속받는 두 부모클래스에 같은 print()라는 메서드가 있다면 어느 부모 클래스의 print() 메서드인지 모호하기 때문이고, 자식클래스가 ..

    [Java] 프로젝트 기획 및 설계

    23. 프로젝트 기획 및 설계 1. 소프트웨어 공학(Software Engineering) 1.1 소프트웨어의 개발, 운용, 유지보수 등의 생명 주기 전반을 체계적이고 서술적이며 정량적으로 다루는 학문1.2 즉, 공학을 소프트웨어에 적용하는 것 2. 정보시스템 개발 프로세스 폭포수 모델(Waterfall Model) : 요구사항 정의 및 분석, 시스템 설계, 구현, 테스팅이라는 일련의 단계를 통해 소프트웨어(시스템)를 개발하는 모델 3. 요구공학(Requirements Engineering) : 요구사항을 정의하고 문서화하고 관리하는 프로세스 3.1 현행 시스템 분석하기3.1.1 현행 시스템 파악- 현행 시스템 파악 : 현행 시스템의 하위 시스템, 제공하는 기능, 기술요소, 사용하는 소프트웨어 및 하드웨..

    [Java] 소스코드관리

    23. 소스코드관리(git) 가. 소스 코드 관리(Source Code Management, SCM) : 소프트웨어 변경 사항 및 버전을 관리하는 것 1) 소스 코드 관리툴 - 소프트웨어의 버전을 관리하고 실수로부터 안전하게 프로젝트를 보호하고 효과적인 협업을 위한 툴 2) 소스 코드 관리툴의 종류- CVS(Concurrent Versions System)- SVN(Subversion) : CVS의 단점을 보완한 툴, 구글, 네이버(2016년 12월 종료) 등에서 지원, 자체 서버 구축도 가능- Git : 분산 버전 관리 시스템, SVN보다 빠른 속도, 최근 많이 사용되고 있음깃허브(GitHub) : Git을 사용하는 프로젝트를 지원하는 웹서비스(http://github.com), 깃허브에서는 공개 프로..