프로그래밍
-
Starvation 과 Deadlock의 차이프로그래밍/운영체제 2020. 6. 24. 18:09
Starvation 한 줄 설명 작업을 해야 하는 프로세스가 어떠한 우연 또는 문제로 인해서 프로세서(CPU)를 할당받지 못해 Ready 상태에서 더 이상 진행하지 못하는 상태 Deadlock 두 줄 설명 작업을 해야 하는 프로세스가 접근할 수 없는 특정자원을 Asleep 상태에서 무한히 기다리는 상태. 예) p1 이 공유자원 1을 선점한 상태에서 공유자원 2를 얻기 원하고, p2는 공유자원 2를 선점한 상태에서 공유자원 1을 얻기 원하는 상황 Starvation과 Deadlock의 차이 1. 실행상태의 차이 : Starvation 은 ready 상태에서 무한 대기를 하는 겁니다. Deadlock 은 asleep 상태에서 무한대기를 합니다. 2. 필요한 자원의 차이 : Starvation 은 프로세서(C..
-
[C++] pair, tuple 보다 편한게 구조체(Struct) ?프로그래밍/C++ 2020. 5. 8. 23:13
요약 : pair 와 tuple 보다 구조체(Struct) 를 사용하면 보다 효율적이고 직관적인 알고리즘 코딩이 가능합니다. 우선 pair 와 tuple 의 장단점을 조금 생각해보자면 pair는 원소의 접근이 편하지만 공간이 두 개로 한정적입니다. tuple은 공간이 무한하지만 접근이 불편합니다. 이러한 이유에서 저는 상황에 따라서 사용했습니다. 그러다가 최근에 구조체(Struct)를 사용하게 됬습니다. 구조체는 이름만으로도 무겁고 귀찮게 느껴집니다. 예를 들어 봅시다. 왼쪽, 오른쪽, 위, 아래의 4가지 정보를 한 세트로 하는 알고리즘을 구현한다고 생각해봅시다. 아래의 두 가지 구현에서 느끼셔야 할 부분은 세 가지 입니다. 1. 구조체 구현이 얼마나 간단한가. 2. 원소 추출이 얼마나 간편한가. 3. ..
-
[C++] Map 컨테이너 기본 사용법 및 예제프로그래밍/C++ 2020. 5. 8. 22:34
사용 라이브러리 · 기본함수 선언문 · map 변수명 추가 및 삭제 · insert( make_pair(key, value) ) : pair 의 형태로 원소를 저장합니다. · erase(key) : 해당 key 값에 해당하는 원소를 삭제합니다. · clear() : 모든 원소를 삭제합니다. 조회 · find(key) : 해당 key 값의 Iterator 값을 반환합니다. · count(key) : 해당 key 값의 원소의 갯수를 반환합니다. 기타 함수 · empty() : 비어있는 경우 1을 , 그렇지 않은 경우 0을 반환 · size() : 원소의 수를 반환 예제 코드 #include #include #include using namespace std; int main() { //////////////..
-
[Spring] MVC 모델프로그래밍/Spring 2020. 3. 31. 13:12
MVC 모델 1 구동방식 브라우저에서 WAS 로 요청(Request)을 보낸다. WAS 는 데이터가 필요한 경우 DB에서 가져와 정보를 가공한다. 가공된 정보를 Model 객체의 형태로 브라우저에게 응답(Response) 해준다. 구성 Client : 서버에 요청을 보내는 사용자. ex) chrome, Edge 등의 웹 브라우저 WAS(Web Application Server) : JSP, Service, DAO 등의 내용이 한파일에 담겨있다. DB 장점 WAS 에 JSP, HTML 태그, Service, 메소드 등의 작업을 한 번에 하기 때문에 빠르고 비교적 편하게 작업이 가능하다. 디 단점 Back-end 와 Front-end 작업을 한 파일에서 진행하기 때문에 유지보수가 어렵고 헷갈린다. 디자이너와..
-
[Spring] @Autowired 와 @Resource프로그래밍/Spring 2020. 3. 27. 17:03
사용하는 이유 기존 객체(Bean) 생성 시 생성자 또는 Setter를 통해서 변수 설정을 해주어야 했다. 이 과정을 생략할 수 있는 방법이 바로 @Autowired 와 @Resource 이다. @Autowired 사용범위 : Constructor, Property, Method 작동방식 : 주입하려고 하는 객체의 타입이 일치하는 객체를 자동으로 주입 주의 : Property 와 Method에 사용시 Default Consructor 를 필수로 명시 @Resource 사용범위 : Property, Method 작동방식 : 주입하려고 하는 객체의 이름이 일치하는 객체를 자동으로 주입 주의 : Property 와 Method에 사용시 Default Consructor 를 필수로 명시 사용 환경 설정 xml ..
-
[Spring] 싱글톤 패턴프로그래밍/Spring 2020. 3. 20. 22:06
싱글톤 패턴 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 인스턴스를 만들어 사용하는 디자인패턴이다. 따라서 Main 파일에서 여러번 생성자가 호출되더라도 결국 하나의 객체(Bean)에 접근하게 되는 것이다. 싱글톤 패턴을 쓰는 이유 하나의 고정된 메모리 영역을 두고 인스턴스를 뽑아서 사용하기 때문에 메모리 낭비가 적다. 싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스여서 데이터공유가 쉽다. 싱글톤 패턴의 문제점 너무 많은 인스턴스가 생기면 결합도가 높아져 "개방-폐쇄 원칙" 을 위배하게 된다. Spring 으로 구현한 메인클래스를 예로 들어보자. 프로토 타입 패턴 싱글톤 패턴과 정반대 개념으로 각각의 객체를 메모리에 할당하여 사용하는 디자인 기법이..
-
[Python] 벌써 백준문제 풀어보기프로그래밍/Python & Ruby 2020. 3. 4. 15:05
프로그래밍을 공부하다 보면 한 번쯤 들어보는 단어 백.준. 아마 이미 알고 있으신 분들이 많겠죠!! 맞습니다 코딩 문제들을 푸는 사이트인데요 앞에서 두 개의 글만 보고 저희는 백준에 올라와있는 문제를 꽤 많이 풀 수 있게 됐습니다. https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 마치 RPG 게임의 시작 마을과도 같은 Hello World 이거 하나만 출력해주면 답이 해결됩니다. 우리는 이미 입출력을 할 줄 압니다. print("Hello World!") 너무 간단하게 첫 번째 문제가 해결됐습니다. ※ 제출방법은 왼쪽 상단에 을 클릭한후 언어를 Python 3 으로 ..
-
[Python] 출력편 심화학습프로그래밍/Python & Ruby 2020. 3. 4. 13:21
혹시 몰라서 간단하게 실습을 진행할 수 있는 파이썬을 실행하는 방법을 아래에 적어두었습니다. 더보기 시작 -> 탐색 창에서 python을 검색합니다. 아이콘을 클릭하면 cmd 창이 나오는데 여기서 간단한 코드 입력이 가능합니다. 1. 여러개 한 번에 출력하기 변수 x, y, z 를 출력하려고 한다면 print() 를 세 번 써야 했습니다. 하지만 이런 식으로 하면 공백을 기준으로 한 번에 출력이 됩니다. ( x=y=z=1 은 z 에 1을 넣고 y 에 z 를 넣고 x 에 y 를 넣는다는 의미로 결국 x, y, z 에 1을 넣었다는 의미입니다.) x = y = z = 1 print(x, y, z)# 출력 값 : 1 1 1 여기서 새로운 함수가 등장합니다. sep 는 구분하다(Separate)에서 따온 말입니..