★관련 링크Spring과 DB이야기 - 1. DataSource와 JdbcTemplateSpring과 DB이야기 - 2. JdbcTemplate에서의 UPDATE, INSERT 데이터베이스 트랜잭션(Database Transaction)은 데이터베이스에서 상호작용의 단위라고 할 수 있다. 연관된 두 개 이상의 쿼리를 실행할 때, 모든 작업이 끝났을 때 COMMIT을 수행하고 중간에 오류가 발생하면 ROLLBACK하는 것이 기본이다. (트랜잭션을 잘 모른다면 여기를 클릭) 트랜잭션을 JAVA에서 구현한다면 아래와 같을 것이다. Connection conn = null; try { conn = DriverManager.getConnection(jdbcUrl, user, pw); conn.setAutoComm..
부제: 물권법 쉽게 이해하기. 유치권과 질권, 그리고 저당권. 모두 대출과 관련이 있는 용어이다. 그리고 가급적 행사하거나 상대방이 내 재산에 대해 행사할 일이 없어야하는(?) 권리이기도 하다. 이번 포스팅에서는 간단하게 유치권과 질권, 저당권을 예를 들어 설명해보겠다. 채권단이 왜 공사장 입구를 막아놨을까? 먼저, 위키에서 설명하는 유치권은 아래와 같다. 타인의 물건이나 유가증권을 점유한 자가 그 물건이나 유가증권에 관한 채권의 전부를 변제받을 때까지 그 물건이나 유가증권을 유치하여 채무자의 변제를 심리상으로 강제하는 민법의 법정담보물권이다. 유치권을 설명할 때 대표적으로 드는 예가 "시계수리"이다. A라는 사람이 만약 시계전문점 주인에게 시계수리를 맡겼다고 가정하자. 이때 A가 시계 수리에 대한 정당..
부제: PG와 VAN 차이, 핀테크와 PG, VAN 바야흐로 "핀테크 대란"이다. XX페이, 앱카드, O2O 등등 새로운 용어들이 쏟아지고 있고, 다양한 인터넷 기업들과 금융관련 기업들이 앞다투어 이 시장에 뛰어들고 있다. 이번 포스팅에서는 결제 대행 시장을 양분하고 있는 PG와 VAN에 대해 알아보겠다. 1. VAN Value-Added Network의 약자이다. (우리나라에서만 쓰이는 용어임에 주의.) VAN을 운영하는 업체를 주로 "VAN사"라고 칭한다. VAN사는 카드사와 가맹점 사이의 네트워크 망을 구축해서 카드사용에 따른 승인을 중계하고 카드사 대신 전표매입 업무를 대행한다. 어려운 용어가 너무 많이 나왔으니, 조금 더 쉽게 알아보자. 우리가 식당에 가서 밥을 먹고 체크카드로 결제를 하는 상황..
부제: 가성비 무선마우스 추천, 로지텍 마우스 추천 가성비 마우스로 소문이 자자한 로지텍 M280을 구매해봤다. 나는 이 마우스가 블루투스 마우스 인 줄 알고 구매했는데... USB 수신기를 컴퓨터에 연결해야하는 방식이다. 구매하기 전 이 점을 꼭 유의하자. 개봉 전의 모습. 포장이 굉장히 튼튼해서, 뜯는데 애를 먹었다. 제품 후면에 편하게 뜯을 수 있는 틈을 제공하지만.. 그래도 힘들었다. 제품을 개봉한 모습이다. 인체 공학적 디자인을 강조한 모델 답게, (오른손 잡이 기준으로) 마우스를 손에 쥐기 좋게 생겼다. 사진의 모습은 회색+형광색 디자인인데, 빨간색모델과 검정색 모델이 있다. 개인적으로는 빨간색이 정말 예쁘게 나왔다고 생각한다. 건전지 하나를 주는 센스를 잊지 않아서 좋았다. 그리고 건전지를 ..
부제: @Autowired @Resource 차이, Spring @Qualifier, Spring Annotation 종류 Spring의 핵심 개념 중 하나인 DI는 Dependency Injection의 약자이다. 이 포스팅에서는 DI와 의존(Dependency)에 대한 자세한 설명은 하지 않고, 위키피디아의 설명으로 대신하겠다. 프로그래밍에서 구성요소간의 의존 관계가 소스코드 내부가 아닌 외부의 설정파일 등을 통해 정의되게 하는 디자인 패턴 중의 하나이다. 한편, 특정 객체에 의존 객체를 주입하는 방식은 두가지이다. 1. 생성자를 통한 주입. 2. Setter 메소드를 통한 주입. 이는 각각 XML로 아래와 같이 구현할 수 있으며, xml파일에 의존관계를 설정하는 것을 명시적 의존 주입이라고 한다. ..
야구 경기를 이기는 것은 어찌보면 간단하다. 더 많은 점수를 얻고 더 적은 점수를 주면 승리한다. 물론 리그 1위 팀이 항상 팀득점 1위, 팀실점 (적은 순서대로)1위를 기록하지는 않는다. 그래서 등장한 것이 피타고리안 승률이다. 피타고리안 승률은 오로지 팀득점과 팀실점만으로 그 팀의 승률을 계산한다는 특징이 있다. 그리고 피타고리안의 공식과 닮아 있어, "피타고리안"이라는 이름이 붙었다. 계산 식은 아래와 같다. 그런데 단순 제곱으로만 계산하면 정확도가 떨어진다하여, 리그에 따라 적절한 특정 상수값을 거듭제곱하여 계산한다. 메이저리그는 1.83, KBO리그의 경우 1.87이다. 그렇다면 오로지 득점과 실점으로만 계산하는 피타고리안 승률은 실제 승률과 얼마나 차이날까? KIA 타이거즈의 우승으로 마무리된..
★관련 링크Spring과 DB이야기 - 1. DataSource와 JdbcTemplateSpring과 DB이야기 - 3. Transaction 처리 지난 포스팅에서 DataSource의 개념과 Spring에서 DataSource를 활용한 JdbcTemplate으로 간단한 SELECT 쿼리를 작성해봤다. 이번 포스팅에서는 UPDATE와 INSERT에 대해 짚어보겠다. JdbcTemplate을 활용하여 INSERT, UPDATE, DELETE 쿼리를 실행할 때는, update() 메소드를 사용하면 된다. update() 메소드는 아래와 같다. - int update(String sql) - int update(String sql, Object... args) int 형태의 리턴을 하는데, 쿼리 실행 결과로 ..
부제: Spring으로 JDBC연동하기, Spring으로 DB조회하기 ★관련 링크Spring과 DB이야기 - 2. JdbcTemplate에서의 UPDATE, INSERT Spring과 DB이야기 - 3. Transaction 처리 JDBC의 구현과 DataSource JAVA를 활용하여 애플리케이션을 개발할 때, DB접근이 필요하면 보통 JDBC를 쓴다. JDBC를 사용해본 사람이라면 아래와 같은 방식으로 개발했을 것이다. public Student getSingleStudent (String studentNum) throws SQLException { Student student; try(Connection conn = DriverManager.getConnection ("jdbc:oracle:this..