분류 전체보기 (7) 썸네일형 리스트형 동적계획법 @동적계획법이란? 다이나믹 프로그래밍(Dynamic Programming), 즉 동적 계획법은 문제를 풀기 위한 한 방법으로 큰 문제를 여러 개의 작은 문제로 나눈 다음 그 결과를 저장해둔 다음 이를 큰 문제 해결에 이용하는 것이다. 이 방법의 가장 큰 장점은 쓸데없는 반복을 없애 실행시간을 확실하게 단축 시킨다는 점이다. 좀 더 구체적으로 설명하자면, 1.전체 문제를 작은 문제로 단순화한다. 2.점화식을 만든다. 3.만든 점화식을 재귀적으로 이용해서 해결한다. 쉽게 생각하면 우리가 프로그램을 짤 때 여러번 쓰일 기능을 편하게 쓰기위해 함수화 시켜놓는 방법과 비슷하다고 볼 수 있다. 함수화 시킴으로 다시 만들지 않아도 되며 이를 통해 많은 시간 단축이 가능하다. @피보나치 수열? 왜 DP를 사용하는 것인.. Oracle 12c 이후 버전 CDB, PDB에 대해서 사담: 제가 CDB,PDB에 대해 공부하게 된 이유는 전에 11g를 사용해서 게시판을 만들다가 이번에 다시 만드려고 12c를 다운 받아 사용하는데 앞에 개념들이 추가되서 스프링에 연결하는데 고생해서 앞으로 사용할때 이해가 필요할 것 같아 정리하게 되었습니다. Oracle이 11g 에서 12c로 넘어가면서 Multitenant라는 개념이 생겼다. 이는 데이터베이스를 클라우드에 맞춰 설계했다고 Oracle에서 발표했다. @CDB와 PDB 구조는 어떻게 되어있을까? 바뀐 Oracle 12c에서 가장 중요한 개념은 CDB(Container Database)와 PDB(Pluggable Database)다. 먼저 구조를 살펴보자. 위 사진을 보면 CDB$ROOT가 인스턴스를 담당하고 있으며 이 CDB에 필요에 따라.. Oracle DB 연결 문제 새로운 게시판을 만들기 위해서 기존에 다운로드 했던 sql developer를 통해 새 DB를 생성해서 연결해주어야 했다. 그러나 오랜만에 새로운 DB를 만드려는데 밑에와 같은 오류가 나왔다. The Network Adapter could not establish the connection 오류는 주로 두가지 원인에서 발생한다고 한다. 1.정보 기입 오류: Hostname, Port, Username 그리고 password를 정확히 입력하지 않았을 때 발생한다. 2.서비스 장애: (1)관리자용 서비스인 리스너(listener)가 작동 하고 있지 않으면 연결 불가능하다. 주로 2번 항목에서 listener가 작동하지 않고 있거나 listener.ora에 정보가 기입이 이상하게 되어 있을 때 발생한다. 즉 .. Apache Maven Maven이란? 메이븐은 조금씩 다른 설정의 프로젝트들을 POM(Project Object Model) 개념을 기반으로 한 하나의 기준을 정해 빌드할 수 있게 해주는 프로젝트관리도구이다. Maven의 장점 -메이븐이 필요한 가장 큰 이유는 협업을 할 때 프로젝트에 참여한 모든 개발자들이 같은 라이브러리 버전을 사용할 수 있도록 맞춰주기 때문입니다 -프로젝트 빌드를 수동으로 해보면 그 과정이 아주 까다로운 것을 알 수 있는데, 우리는 개발을 하면서 이 빌드 과정을 수 없이 반복해야된다. 이는 아주 시간이 오래걸리고 귀찮은 작업이 될 수 있는데 Maven은 이러한 복잡한 프로젝트 빌드 과정을 대신 해준다. -pom.xml 파일 통해 관리함으로 개발, 유지보수 측면에서 오픈소스 라이브러리, 프로젝트 등 관리가.. Queue offer와 add 차이 Oracle 문서를 보면 Queue에 쓰이는 메소드는 예외처리를 하는 것과 특정값을 리턴해주는 두 부분을 나뉜다. offer 메소드와 add 메소드는 요소를 삽입할 때 사용된다. 둘의 공통점은 둘다 요소를 삽입할 수 있을때 요소를 삽입한다는 점이다. 차이점은 queue가 가득차서 더이상 요소를 삽입할 수 없는 상황에서 offer은 삽입에 실패해도 false값을 리턴해주며 작동하고 add의 경우에는 예외처리를 발생시켜 작동에 실패하게 된다. 출처:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Queue.html Queue (Java SE 11 & JDK 11 ) A collection designed for holding el.. API와 REST API API란? API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. -위키백과 설명- API는 Application Programming Interface의 줄임말로써 응용프로그램 인터페이스를 뜻한다. [인터페이스가 무엇인지 먼저 설명하자면 인터페이스는 서로 다른 두 사람,사물,시스템 간의 원할한 소통이 가능하도록 해주는 시스템을 뜻한다. 가장 흔히 알려진 UI는 User Interface는 사람과 사물 간의 소통을 해주는 매개체(시스템)을 뜻하고 이에 대한 예시로는 터치스크린이나 마우스가 있다.] API는 User 대신 Application.. Django에 트랜잭션 주입하기 rest API를 통해 트랜잭션을 보장하려고 한다. 트랜잭션은 하나의 작업 단위를 뜻한다. 즉 나눠져 있는 작업들을 한데 모아서 성공을 하게 되면 다같이 성공하게 해주는 것이고 실패할 경우 다 같이 실패하게 만들어주는 기능이다. 이는 원자성을 보장해주는 것인데 이와 같은 기능이 필요한 이유는 데이터베이스에 저장할 때 중구난방으로 저장하는 것을 방지해주기 위해 필요하다. 이는 금융권에서 특히 많이 쓰인다. 왜냐하면 금융 시스템은 보통 출금과 입금으로 나뉘어 지는데 출금했을때 오류가 나면 출금한 상태지만 입금은 할 수 없는 돈이 붕뜬 상태가 되버린다. 이를 방지 하기 위해 출금 입금이 둘다 이루어진 경우만 저장이 되거나 둘중 하나라도 안되면 모든 과정이 취소 되는 롤백 과정이 필요하기 때문이다. django.. 이전 1 다음