OOP

· OOP/Java
1. 쓰레드와 멀티쓰레드프로세스를 실행 중인 프로그램이라고 하면, 프로그램은 OS로 부터 실행에 필요한 메모리를 할당받아 프로세스가 됩니다.프로세스의 메모리를 이용해서 실제로 작업을 수행하는 것이 쓰레드 입니다. 둘 이상의 쓰레드를 가진 프로세스가 멀티 쓰레드 프로세스 입니다. 2. 멀티쓰레드 장단점장점1. CPU 사용률 향상2. 효율적인 메모리 사용3. 사용자에 대한 응답성 향상4. 작업이 분리되어 코드 간결단점1. 동기화와 교착 상태 문제  3. 쓰레드 구현쓰레드를 구현하는 방법은 Thread 클래스를 상속받는 방법과 Runnable 인터페이스를 구현하는 방법이 있습니다.public class MyThread extends Thread{ @Override public void run() {..
· OOP/Java
1. 오버로딩 시 생성자 에러(Constructor Class is already defined in Class) 'Child(String)' is already defined in 'com.java.javacode.overloding.Child' ‘Class(Type)’ is already defined in ‘package.class’ 생성자를 오버로딩(Overloading) 시 매개변수를 받는 자료형이 종류와 갯수가 동일할 경우 에러가 발생합니다. 이유는, 해당 type을 가진 생성자가 이미 선언되었기 때문입니다. 생성자가 다르게 보일지라도 컴퓨터의 입장에서는 클래스 객체 생성 시 어떤 생성자를 가지고 생성해야하는지 판단하지 못하기 때문입니다. Parent public class Parent { p..
· OOP/Java
1. Throwable 클래스 Java의 모든 예외는 java.lang.Throwable 클래스를 상속합니다. Throwable은 예외처리를 하기 위한 최상위 클래스입니다. 직접 사용되지 않고 상속받은 자식 클래스들이 예외처리에 사용됩니다. 2. RuntimeException과 IOException의 차이 : 예외 상황을 처리하는데 강제성을 가지고 있는가 없는가 하는 것 RumtimeException의 경우 : 프로그램 실행 도중 발생하는 예외로 프로그래머의 잘못이 발생했다는 것 Ex) IndexOutOfBoundsException, NullPointerException, Type... 예외 처리하는데 강제성을 가지고 있지 않다. IOException의 경우 : 런타임 예외는 언제 에러가 발생하는지 알 ..
· OOP/Java
Java 정규 표현식(Regular Expression) : 컴퓨터 과학의 정규 언어로부터 유래한 것으로 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 언어 전화번호, 주민등록번호, 이메일 등과 같이 정해져 있는 형식이 있고 사용자가 그 형식대로 제대로 입력했는지 검증을 해야하는 경우 정규표현식을 사용하여 쉽게 검증 가능하다. 정규표현식 사용 방법 java util.regex 패키지를 사용 Pattern 클래스와 Matcher 클래스를 주로 사용 Pattern 클래스 정규 표현식에 대상 문자열을 검증하는 기능으로 matches()메소드를 활용하여 검증 구조는 matches(regex, string) 이며, 일치하면 true, 그렇지 않으면 false를 리턴한다. 숫자 검증하는 예제 Patter..
· OOP/Java
Optional 자바 8에서는 Optional 클래스를 사용해 NPE를 방지 null이 올 수 있는 값을 감싸는 Wrapper 클래스 Optional 클래스 내부 [Optional 생성 empty()] Optional 클래스는 Wrapper 클래스이므로 값이 없을 수 도 있는데 이때 empty()로 생성 Optional optional = Optinal.empty(); [ isPresent() ] isPresent()를 사용하여 현재 값이 존재하는지 확인 리턴 타입은 boolean [ of ] 만약 어떤 데이터가 절대 null 이 아니라면 of로 생성 [ ofNullable ] 값이 null일수도 아닐수도 있는 경우에는 ofNullable로 생성 생성 이후 orElse, orElseGet메소드를 이용해서..
· OOP/Java
JUnit : Java기반의 단위테스트를위한 프레임워크 Annotation 기반으로테스트를지원하며, Assert를 통하여, 예상, 실제 를 통해 검증 * 단위테스트 : 작성한코드가 기대하는 대로 동작을 하는지 검증 하는 절차 * TDD(Test-Driven Development) : 테스트주도개발에서 사용하지만, 코드의 유지보수및 운영환경에서의 에러를 미리 방지하기 위해서 단위 별로 검증하는 프레임워크 JUnit ICalculator 인터페이스 public interface ICalculator { int sum(int x, int y); int minus(int x, int y); } Calculator 클래스 public class Calculator { /* * 계산기 모델을 외부 주입에서 주입 받..
· OOP/Java
1. 캡슐화 : 객체의 속성을 보호 직접 접근이 아닌 외부 접근을 통해 상태 속성 변경 Ex) getter / setter Method = 외부에서 내부속성에 직접 접근이 아닌 getter / setter를 통해 접근 CRUD Method - 데이터 처리를 위한 기본적인 기능 제공 Business Logic Method - 비즈니스 로직 처리 기능 겍체 생명 주기 처리 Mehtod - destory(), disconnect()등 소멸에 대한 Method() 장점) 1. 추상화 제공 : 실제로 메소드가 어떻게 동작하는지는 외부(메소드호출영역)에서는 이해할 필요가 없으며, 이를 단순 호출만으로 해당 기능을 실행할 수 있고, 이를 통해서 객체 단위로 프로그램 설계가 가능 2. 재사용성 향상 : 한 객체애에 ..
· OOP/Java
쓰레드 : process 실행 중인 프로그램이 실행되면 OS로 부터 메모리를 할당받아 프로세스 상태가 됨 쓰레드 하나의 프로세스는 하나 이상의 쓰레드를 가지게 되고, 실제 작업을 수행하는 단위는 쓰레드임 Process(1.thread, 2.thread) 멀티 쓰레드 : 여러 쓰레드가 동시에 수행되는 프로그래밍, 여러 작업이 동시에 실행되는 효과 쓰레드는 각각 자신만의 작업공간을 가짐(context) 각 쓰레드 사이에서 공유하는 자원이 있음(자바에서는 static instance) 웹에서는 웹서버가 여러 request를 받아 처리함으로 멀티쓰레드역할을 함 여러 쓰레드가 자원을 공유하여 작업이 수행되는 경우 서로 자원을 차지하려는 race condition이 발생 이렇게 여러 thread가 공유하는 자원중 ..
defxyj
'OOP' 카테고리의 글 목록