일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- 오라클
- resilience4j
- spring
- hyperledger
- dynamic query
- 학점
- smart cast
- 유사코드
- gradle
- 알고리즘
- K6
- auto configure
- 문법 정리
- 파이썬
- 자바
- oracle
- 운영체제
- 자바 프로젝트
- 백준 알고리즘
- 리눅스
- 티스토리
- 초대장
- 파이썬 소스
- 프로젝트
- JVM
- 오라클 디비
- jsp
- c#
- MongoDB
- Today
- Total
목록목차 (231)
모종닷컴
알고리즘 설계 패러다임이란 주어진 문제를 해결하기 위해 알고리즘이 채택한 전략이나 관점을 말한다. 무식하게 풀기'무식하게 푼다'라는 말은 컴퓨터의 빠른 계산 능력을 이용해 가능한 경우의 수를 일일이 나열하면서 답을 찾는 방법을 의미한다. 이렇게 가능한 방법을 전부 만들어 보는 알고리즘들을 가리켜 흔히 "완전 탐색"이라고 한다. 재귀 호출과 완전 탐색재귀 호출(=재귀 함수)이란 자신이 수행할 작업을 유사한 형태의 여러 조각으로 쪼갠 뒤 그 중 한 조각을 수행하고, 나머지를 자기 자신을 호출해 실행하는 함수를 말한다. 재귀 함수에는 '더 이상 쪼개지지 않는' 최소한의 작업에 도달했을 때 답을 곧장 반환하는 조건문(='거저 사례')을 포함해야 한다.ex) if(n==1) return 1; 재귀 호출은 기존에 ..
알고리즘이 존재가능한 모든 입력에 대해 정확하게 동작한다는 사실을 증명할 수 없다. 따라서 알고리즘의 정확한 증명은 각종 수학적인 기법을 기반으로 되야한다. 수학적 귀납법과 반복문 불변식 수학적 귀납법은 반복적인 구조를 갖는 명제들을 증명하는 데 유용하게 사용되는 증명 기법. 귀납법은 크게 3가지로 나뉜다.단계 나누기 = 증명하고 싶은 사실을 여러 단계로 나눈다. 첫 단계 증명 = 첫 단계에서 증명하고 싶은 내용이 성립함을 보인다. 귀납 증명 = 첫 단계에서 증명하고 싶은 내용이 성립하면, 다음 단계에서도 성립함을 보인다. 알고리즘은 어떠한 형태로든 반복적인 요소를 가지고 있기 때문에, 귀납법은 알고리즘의 정당성을 증명할 때 가장 유용하게 사용되는 기법. 반복문 불변식 = 반복문의 내용이 한 번 실행될 ..
1. final 1) 변수 : 변수가 초기화된 이후 변경되지 않는다. 2) 클래스 : 이 클래스는 서브클래스를 가지지 않는다. 다시 말해 이 클래스를 상속할 수 없다. 3) 메소드 : 해당 메소드는 서브 클래스에 의해 오버라이딩 되지 않는다. 2.finally 1) try - catch : try 혹은 catch가 실행된 후 실행 finalize 가비지 컬렉션에서 객체를 destroy 또는 delete 하기 전에 호출하는 메소드이다. 데이터베이스 커넥션이나, 네트워크 커넥션 같은 연관된 자원들을 해제한다. 기본적으로 Object에 선언되어 있으므로, 모든 객체는 finalize를 가지고 있다.
쉘과 프롬프트 @ 앞 : 접속 계정 @ 뒤 : 접속한 시스템의 이름: 뒤 : 현재 경로( pwd로도 확인 가능) 사용자 관리 1.사용자 추가 useradd [option] 계정이름 -d : 홈 디렉토리를 저장할 때 사용-g : 그룹 지정-G : 기본 그룹 이외에 추가로 지정할 그룹이 있는 경우-c : 계정에 대한 설명 현재 시스템의 사용자를 확인하려면 "cat /etc/passwd" 명령어를 통해 확인 가능하다.각 라인은 다음을 의미한다 [ID : 비밀번호 : UID : GID : 설명 : 홈 디렉터리 : 로그인 쉘] 2. 사용자 비밀번호 설정 사용자의 비밀번호는 /etc/shadow 파일에 암호화 되어 있다.비밀번호가 설정되어 있지 않은 곳은 느낌표(!)로 표시되어 있다. 계정에 비밀번호를 설정하고 싶..
리눅스 소개무료POSIX(Portable Operating System Interface)와 100퍼센트 호환서버 환경 뿐망 아니라 데스크톱, 임베디드, 안드로이드와 같은 스마트폰과 스마트 TV 등에 포팅되어 운영되고 있는 광범위하고 다양한 시스템에 이용되고 있다. ( 다양한 컴파일러를 가지고 있기 때문에 소스코드만 있다면 지원하고 있는 컴파이러를 이용하여 컴파일 가능)Unix 운영체제의 특징을 모두 가지고 있다.( 멀티 유저, 멀티 프로세스, 멀티 프로세서, 멀티 스레드)여러 사용자가 하나의 시스템을 사용하기 때문에 계정과 비밀번호 그리고 홈 디렉토리로 사용자를 구분 하며 계정별 권한과 제약을 두어 시스템 보안을 제공. 리눅스는 크게 커널과 사용자 계층으로 나누어 생각할 수 있다. 커널실제 운영체제를 ..
1.비슷한 문제를 풀어본 적이 있던가? 형태가 비슷하거나 관련된 문제를 풀어 본 적이 있다면 이전에 적용했던 방법과 비슷한 접근 방법을 사용할 거라고 예측할 수 있다. 따라서 기존에 접했던 문제가 온전히 경험이 되기 위해 그 원리를 완전히 이해하고 변형할 수 있어야 한다. 2. 단순한 방법에서 시작할 수 있을까? 비슷한 문제를 본 적이 없거나, 비슷한 문제의 해법이 곧장 적용되지 않는다면 "무식하게 풀 수 있을까?"라는 질문으로 시작한다. 이렇게 만든 단순한 알고리즘에 효율적인 자료 구조를 사용하거나, 계산 과정에서 같은 정보를 두 번 중복으로 계산하지 않는 등의 최적화를 적용해서 충분히 빨라질 때까지 알고리즘을 개선하는 식으로 문제를 풀 수 있다. 3. 내가 문제를 푸는 과정을 수식화할 수 있을까? 손..
N+1 Selects 문제N+1 문제란 ? 조회를 위해 select 쿼리(1번)를 날렸다가 관련 컬럼을 얻기 위해 N번의 셀렉트(N번)를 하게 되는 상황. 같은 결과를 낼지라도, 그 쿼리를 수행하는데에 있어 몇 번의 쿼리를 해야하는지에 따라 성능이 달라진다. 마이바티스의 association에서 Nested Select, Nested Results를 예로 들 수 있다. Nested Select 는 결과에서 다시 한번 참조를 하기 위해 다음 Select구문을 실행하는 것을 말하고, Nested Results는 조인된 결과물에 대해 반복적으로 사용하여 결과를 맵핑하는 방법을 말한다. 예시를 보도록 하겠다. (참고 : http://www.mybatis.org/mybatis-3/ko/sqlmap-xml.html..
MyBatis Insert not working insert 구문을 계속 실행시켰지만 데이터베이스에 적용도 안되고 오류도 안나기에 무엇이 잘못된지 한참 찾아다녔다 결론적으로 SqlSession을 commit()시켜주니 적용이 되었는데, 당연히 JDBC처럼 auto commit이 되어있을 거란 생각을 했었다.. 궁금해서 코드를 따라가보니 일단 SqlSessionFactory는 DefaultSqlSessionFactory였고, 이 팩토리의 opensession(boolean autoCommit)부분을 쭈욱 따라가보니 DefaultSqlSession에서 autoCommit이 설정안되있다는 것을 알게되었다. autoCommit을 설정하고 싶다면 다음과 같이 sqlSession을 생성할 때 true로 설정해야한다
ACID Atomicity : 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장.Consistency : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지.Isolation : 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것.Durabillity : 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함. 특히 격리성과 관련된 문제점들 중 대표적인 3가지가 아래에 있다. 격리성 관련 문제점 (1) Dirty Read : 다른 트랜잭션이 커밋되지 않은 변경된 데이터를 읽게되고, 변경된 데이터가 롤백으로 인해 변경 전으로 돌아갔지만, 이미 다른 트랜잭션이 변경된 데이터를 읽게 된 것. (2) Non-Repeatable Read ..
스프링 MVC 기본 흐름과 주요 컴포넌트 스프링 MVC는 여러 가지의 컴포넌트로 구성되어 있으며 흐름은 다음과 같고 역할은 밑에 표로 정리하였다. 구성 요소 설명 DispatcherServlet 요청 받음, 컨트롤러에게 요청 전달, 결과값을 view에 전달한다. HandlerMapping URL을 통해 어떤 컨트롤러가 이를 처리할지를 결정 HandlerAdapter 요청을 변환하여 컨트롤러에게 전달. 컨트롤러로부터 받은 결과를 다시 리턴. 웹 브라우저 캐시 등의 설정도 담당 Controller 전달 받은 요청을 처리한 뒤, 결과 리턴. View에 보여줄 데이터들을 모델에 담아 전달 ViewResolver뷰를 결정한다. View데이터들을 Html에 삽입 [참고 자료 : 웹 개발자를 위한 Spring 4.0..