일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스
- auto configure
- MongoDB
- oracle
- K6
- SQL
- jsp
- 운영체제
- 프로젝트
- 파이썬 소스
- 자바 프로젝트
- resilience4j
- spring
- 유사코드
- 티스토리
- 오라클 디비
- smart cast
- 알고리즘
- 오라클
- 자바
- 백준 알고리즘
- gradle
- JVM
- 파이썬
- hyperledger
- 학점
- 초대장
- c#
- 문법 정리
- dynamic query
- Today
- Total
목록Programming (154)
모종닷컴
■커스터마이징 버튼 만들기 프로젝트 내에서 fullcalendar를 사용하게 되었다. 뷰 모드는 agenda로 다음 날짜 혹은 이전 날짜 버튼을 클릭했을 때 특별한 작업을 하고 싶었다. 일단 기존의 prev, next 버튼에 이벤트를 추가하고 싶었으나 정보를 제대로 찾지 못해서 커스터마이징된 버튼으로 대체 하기로 하였다. ■Calendar에 동적으로 데이터 추가하기 작성한 updateTime는 calendar에 events(데이터)를 추가하는 것이다. calendar에 데이터를 추가하는 방법은 다음과 같이 호출하면 된다. * 배열의 경우$('#calendar').fullCalendar('renderEvents',데이터배열,영구데이터) * 배열이 아닌 객체의 경우$('#calendar').fullCalen..
인증이 되어있지 않은 사용자는 스프링 시큐리티의 필터링에 걸려 로그인 페이지로 향하게 된다. 나의 경우 처음에는 로그인을 성공했을 때 핸들러를 통해(SimpleUrlAuthenticationSuccessHandler를 상속받아 작성) 메인페이지로 돌아가게끔 URL을 지정하였다. 그렇다면 메인페이지말고 내가 로그인 페이지로 넘어가기전에 요청했었던 url로 넘어가고 싶다면 어떻게 해야 할까? 보통 다른 방법들을 찾아보았을 때 login페이지 컨트롤러에서 Session 값을 넣거나 하는 작업을 하는 것들을 보았는데, 사실 우리는 그럴필요가 없다. 레퍼런스에서 발견한 내용인데 두번째 문단을 읽어보면 인증전의 요청을 세션에 저장하고 있다고 얘기한다.그리고 세션에 저장되어 있는 속성의 이름은 SPRING_SECUR..
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 운영체제의 특징을 모두 가지고 있다.( 멀티 유저, 멀티 프로세스, 멀티 프로세서, 멀티 스레드)여러 사용자가 하나의 시스템을 사용하기 때문에 계정과 비밀번호 그리고 홈 디렉토리로 사용자를 구분 하며 계정별 권한과 제약을 두어 시스템 보안을 제공. 리눅스는 크게 커널과 사용자 계층으로 나누어 생각할 수 있다. 커널실제 운영체제를 ..
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..
1. 의존 객체를 직접 생성하는 방식 아래와 같은 객체를 생성해야 한다는 가정을 들어보자. new A( new B); 이렇게 의존 객체를 직접 생성하는 방식을 사용하게 되었을 때 내용은 아래 사진과 같이 되게 된다. 이렇게 구성되어 있을 때 만약 A가 생성할 때 B가 아닌 C를 참조해야 한다고 할 때, 다음과 같이 작성했던 모든 클래스들에 대해서 코드를 고쳐야 하는 상황이 온다. 2. 의존 객체를 외부에서 조립하여 내리는 방식 의존 객체를 직접 생성하는 방식과 달리 Dependency Injection는 의존 객체를 외부로부터 전달받는 구현 방식이다. 이 경우 A가 B가 아닌 C를 참조하게 되었을 때는 이를 정의하고 있는 파일만 고쳐주게 되면 된다는 것이다. 지금 설명할 때에는 3개의 클래스만 영향을 받..