본문 바로가기

전체 글

(58)
[ Java ] Day 03 - ① Thread의 개념 # 쓰레드란 (1) 쓰레드란? 하나의 프로그램이 하나이상의 독립적 서브 Task로 분리되어 실행될 때 각 서브 Task를 Thread라함. 각 쓰레드는 별개로 실행하면서 CPU를 공동으로 사용 경량(lightweight) 프로세스 다중 쓰레드: 하나의 프로세스에서는 동시에 여러 쓰레드가 실행. 하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용 (2) 프로세스란? 실행중인 프로그램, 자원(resources)과 쓰레드로 구성된다. (3) 쓰레드 Life Cycle # 멀티 쓰레드의 장단점 멀티 쓰레드는 프로세스를 복사하는 것이 아니라 Function 단위로 실행시키는 것이다. 즉, 어떤 Function에서 다른 Function을 호출하면서 그 밑의 루틴을 다시 실행..
[ Java ] Day 02 - ③ Collection Framework - ⑵ List 인터페이스 # List 인터페이스 List 구조는 Sequence라고도 하며, 시작과 끝이 선정되어 저장되는 요소들을 일괄적인 정렬상태를 유지하면서 요소들의 저장이 이루어진다. 이런 점 때문에 List 구조하면 배열을 영상하게 되는데 무리는 아니다. 어떻게 보면 List구조와 배열이 같다고 볼 수 있다. List와 배열의 차이 : 배열은 고정 길이, List는 가변길이를 갖는다. List 구조 구현 클래스 설명 Stack Stack 클래스의 객체들의 LIFO(Last-In First-Out) 스택을 표현 Vector 클래스로부터 파생된 클래스 push(), pop(), peek(), search(), empty() Vector 배열과 같이 정수 인덱스로 접근할 수 있는 접근 소자를 가지고 있음. 배열과 달리 Vec..
[ Java ] Day 02 - ③ Collection Framework # 컬렉션 프레임워크(Collection Framework)이란? 컬렉션 프레임워크 데이터 군을 저장하는 클래스들을 표준화한 설계 다수의 데이터를 쉽게 처리할 수 있는 방법을 제공하는 클래스들로 구성 JDK 1.2 부터 제공 컬렉션(collection) 다수의 데이터, 즉 데이터 그룹을 의미 프레임워크(framework) 표준화, 정형화된 체계적인 프로그래밍 방식 컬렉션 클래스(collection class) 다수의 데이터를 저장할 수 있는 클래스(Ex. Vector, ArrayList, HashSet) # 컬렉션 프레임워크의 핵심 인터페이스 핵심 인터페이스간의 상속 계층도 핵심 인터페이스와 특징 인터페이스 특징 List 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다. 예) 대기자 명단 Class..
[ Java ] Day 02 - ② 예외 처리 # 오류란 무엇인가? 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우 이러한 결과를 초래하는 원인을 에러 또는 오류라고 한다. 자바에서는 실행(Run Time)시 발생할 수 있는 오류를 에러(Error)와 예외(Exception) 두가지로 구분한다. 에러(Error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외(Exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 자바에서는 실행시 발생할 수 있는 오류(Exception or Error)를 클래스로 정의해두었다. 예외 처리의 종류 예외 복구: try - catch - finally 문 예외 회피 : throws 던지기 예외 전환: catch문에서 다른 예외로 전환 throw Ot..
[ Java ] Day 02 - ① Design Pattern # Design Pattern 숙련된 개발자들이 거친 시행착오를 해결해 놓은 Solution 모음집 가장 유명한 패턴 : Gof (Gang of four) 생성 - Singleton, Prototype, Builder 구현 - Adaptor, Bridge, Composite, Decorator 행위 - Strategic, Template, State # 1. Strategy Pattern 샷건(Shot Gun) 현상 해결 - 하나의 부분이 다른 곳에 연쇄적으로 영향을 미치는 것 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화 하는 인터페이스를 정의하여, 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확..
[특강] AI 자료 모음 * AI 자료 추천 모음 머신러닝을 공부하기 위해 추천받은 자료를 포스팅하였습니다. [선형대수/ 미적분] youtube-3blue1brown: Multivariate Calculus / Linear Algebra / Neural Network 강의 [python] 점프투파이썬 https://wikidocs.net/book/1 초보자를 위한 파이썬 200제 natural language processing with python https://www.nltk.org/book/ codeit.kr 프로그래밍 기초(파이썬), 데이터 사이언스 [machine learning] tensorflow tutorial https://www.tensorflow.org/tutorials/ 모두의 연구소 http://www.m..
[ Java ] Day 01 - ③ 인터페이스 ...더보기 JAVA 프로그래밍 언어를 배우면서 부족했던 부분인 인터페이스를 오늘 보완하였습니다. 인터페이스의 개념과 사용법, 역할에 대해서 알아보는 시간을 가졌습니다. 자바 프로그래밍을 여러번 반복 학습하였지만, 추상 클래스와 인터페이스는 개념을 정확히 다잡지 않아 항상 어려운 부분이었습니다. 오늘 강의를 통해 인터페이스의 개념에 대해서 정확히 알게 되었고, 추상 클래스와 인터페이스를 구분할 수 있게 되었습니다. 인터페이스의 간단한 예제도 첨부합니다. # 인터페이스란? 인터페이스란 일종의 추상 클래스로서, 추상 클래스보다 추상화 정도가 높다. 인터페이스는 관련이 없는 것끼리 묶기 위한 도구이다. 인터페이스는 추상메소드와 상수만을 멤버로 가질 수 있다. 인스턴스를 생성할 수 없고, 클래스 작성에 도움을 ..
[ Java ] Day 01 - ② 객체지향에서 중요한 개념 # OOP(Object-oriented Programming) Inheritance Polymorphysn Information Security 1. Inheritance (상속) extends implements (2) Polymorphysm (다형성) Overriding OverLoading (면접 단골 질문) 오버라이딩과 오버로딩의 비교! 오버라이딩은 메소드를 재정의하는 것이고, 오버로딩은 메소드를 다중 정의하는 것이다. (3) Information Security (정보보호) Private (Encapsulation) Information Hiding # OOP Check 개념 static constructor abstract class interface (1) 인스턴스 변수와 클래스 변수 클래스..