일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- http
- Android
- db
- Servlet
- JPQL
- 김영한
- transaction
- Greedy
- JDBC
- AOP
- java
- springdatajpa
- 스프링 핵심 원리
- Proxy
- 자바
- kotlin
- spring
- 인프런
- Exception
- 그리디
- Spring Boot
- jpa
- QueryDSL
- 알고리즘
- 스프링 핵심 기능
- pointcut
- 백준
- 스프링
- SpringBoot
- Thymeleaf
- Today
- Total
목록Java (91)
개발자되기 프로젝트
1. 클래스 다이어 그램 객체 지향 프로그래밍에서 여러 클래스 상호관의 협력 관계를 나타내는 Diagram 클래스 간의 관계를 설계 할 때 유용함 2. 연관관계(association) 클래스 상호 간에 서로 연관되어 있음을 나타냄 단방향 연관관계의 경우는 화살표(->)로 표시 양방향 연관관계는 직선(-)으로 표시 클래스간의 연관된 개체의 수를 표현해야 하는 경우에는 선의 끝쪽에 다중성(multiplicity)를 나타낸다. 일대다, 다대일, 다대다(다대다는 일대다, 다대일로 풀어야 ㅋㅋ) 3. 집합 관계(composition, aggreagion) 연관관계의 특별한 경우 클래스 간의 포함관계를 나타냄 전체 객체와 부분 객체의 인스턴스 생존 주기(life time)에 다라 두 가지로 구분될 수 있음. 집약관..
1. 단일 책임 원칙(Single Responsibility Printciple) 하나의 클래스는 하나의 기능만을 구현. 즉 어떤 클래스를 변경하는 이유는 하나이어야 한다. 한 클래스에서 여러 기능을 제공하게 되면 유지보수가 어려움. 2. 개방 폐쇄의 원칙(Open-Close Principle) 객체 자신의 수정에 대해서는 유연하고, 다른 클래스가 수정될 때는 영향을 받지 않느다. 인터페이스나 추상 클래스를 통해 접근 하도록 함. 자바 JDBC, I/O Stream 3. 리스코프 치환 원칙(Liskov Subsitution Principle) 하위 클래스는 항상 상위 클래스도 교체될 수 있어야 한다. 즉, 상위 클래스가 제공하는 여러 기능은 하위 클래스가 모두 사용가능 해야 한다. Is-A 관계, "is..
1. 추상화 어떤 영역에서 필요로 하는 속성이나 기능을 추출하는 작업 데이터 구조, 표현방법에 대한 추상화 처리 과정에 대한 추상화 클래스 = 객체의 설계도 메서드 = 객체가 해야할 기능 2. 캡슐화 데이터를 감사서 외부에서 사용 가능한 부분만을 제공(information hiding) 사용하는 코드(클라이언트 코드)가 세부적인 사항을 알 필요가 없음 단순한 접근을 제공하여 오류가 생길 부분을 감소시킴 3. 상속성 일반적인(general) 개념의 객체에서 보다 구체적인(specific) 개념의 객체의 관계를 표현 상속관계의 클래스는 상위 클래스의 타입을 내포함 상위 클래스의 속성과 기능을 하위 클래스에서 사용하거나 재정의 할 수 있음 4. 다형성(polymorphism) 같은 메세지, 같은 구현데 대해 ..
1. 디자인 패턴이 생긴 이유 소프트웨어를 재사용 할 수 있고, 유연하고, 확장성 있고, 유지보수가 용이하게 만드는 것은.. 어려움.. 기술, 재능, 노력, 창의성, 직관련 등등등이 필요하지만 경험이 중요 What is Design Pattern : Christopher Alexander Each pattern descripbes a Problem which occurs over and over again in out enviroment, and thend describes the core of the solution to that problem, in such way that you can use this solution a million times over, without ever doing it t..
1. wait(), notify() 리소스가 어떤 조건에서 더 이상 유효하지 않은 경우 리소스를 기다리기 위해 Thread가 wait() 상태가 된다. wait()상태가 된 Thread는 notify()가 호출될 때 까지 기다린다. 유효한 자원이 생기면 notify()가 호출되고 wait()하고 있는 Thread 중 무작위로 하나의 Thread를 재시작 하도록 한다. notifyAll()이 호출되는 경우 wait()하고 있는 모든 Thread가 재시작 된다. 이 경우 유효한 리소스 만큼의 Thread만이 수행될 수 있고 자원을 갖지 못한 Thread의 경우 다시 wait()상태로 돌아감. 자바에서는 notifyAll()메서드 사용을 권장 2. 도서관에서 책을 빌려보자 class Library{ publi..
1. Critical Section과 semaphore Critical Section은 두 개 이상의 thread가 동시에 에 접근 하는 경우 문제가 발생할 수 있기 때문에 동시에 접근할 수 없는 영역 semaphore는 특별한 형태의 시스템 객체이며 get/release 두 개의 기능이 있다. 한 순간 오직 하나의 thread만이 semaphore를 얻을 수 있고, 나머지 thread들은 대기(blocking)상태가 된다. semaphore를 얻은 thread만이 critical section에 들어갈 수 있다. 2. Park 과 Park2 가 동시에 Bank 자원에 접근하여 작업이 이루어지는 경우의 예제 Shared resource : Bank객체 Critical Section : saveMoney(..
1. Thread 우선순위 Thread.MIN_PRIORITY(=1)~Thread.MAX_PRIORITY(=10) 디폴트 우선순위: Thread.NORMAL_PRIORITY(=5) 우선 순위가 높은 Thread가 CPU의 배분을 받을 확률이 높음 setPriority()/ getPriority() Thread 우선순위 예제 class PriorityThread extends Thread{ @Override public void run() { int sum = 0; Thread t = Thread.currentThread(); System.out.println(t + " start"); for (int i=0; i
1. Thread??? process(실행중인 프로그램) : 프로그램이 실행되면 os로 부터 메모리를 할당받아 프로세스 상태가 됨. process(프로그램이 메모리에 올라간 상태) thread : 하나의 프로세스는 하나 이상의 thread를 가지게 되고, 실제 작업을 수행하는 단위는 thread 프로그램이 돌아가려면 cpu를 점유해야 함. CPU를 점유하는 단위가 thread 2. multi-threading 여러 thread가 동시에 수행되는 프로그래밍. 여러 작업이 동시에 실행되는 효과 thread는 각각 자신만의 작업 공간을 가짐(context) 각 thread사이에서 공유하는 자원이 있을 수 있음(자바는 static instance) 여러 thread가 자원을 공유하여 작업이 수행되는 경우 서로 ..