★관련 링크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..
"스타벅스에서 심각한 표정으로 맥북 프로를 골똘하게 쳐다보고 있는 개발자의 모습"은 예전부터 나의 로망이었다. 취업을 한 뒤 맥북으로 개발할 기회가 생길 줄 알았지만 하필 내가 다니는 회사는 맥북을 지급하지 않기에.. 로망이 불타오르는 와중에 결국 맥북을 지르게 되었다. 중고나라에서 미개봉품을 사는 것이 가장 싸다던데.. 나는 그냥 다나와에서 검색해서 구매했다. 택배가 오는데는 약 일주일 정도가 걸린 것 같다. (맥 스토어에서 구매하면 금방 도착한다고 하니 참고) 별다른 완충장치가 없어보이지만, 박스 크기가 정말 크다. 안에 빈공간이 많을 것만 같았는데, 열어보니 빈공간이 많았다. 맥북이 훼손될 확률은 낮아보인다. 맥북 프로 2016버전부터 스페이스 그레이 색상이 추가되었다. 때마침 나의 아이폰6S도 스..
이번 포스팅에서는 2010년대 KBO리그 최고의 외야수 중 한명이자, KIA타이거즈의 4번타자 최형우 선수의 별명에 대해 알아보겠다. 최형우 선수는 박병호, 김상현 선수와 함께 '대기만성'한 선수로 유명하다. 최형우 선수는 2002 신인드래프트 6라운드 전체 48순위, 포수로 삼성라이온즈에 입단한 선수이다. 그럼에도 2008년 최우수 신인에 선정된 특이한 이력이 있다. 그는 2005년까지 별 다른 활약이 없다가 2005년 시즌 후 방출 되었는데, 때마침 창단한 경찰청에 입단한 뒤 외야수로 포지션을 외야수로 변경하면서 포텐셜을 터뜨리게 된다. 특이하게도, 다른 팀에 입단하지 않고 삼성 라이온즈에 재입단하게 되었으며 2008시즌 최우수 신인을 시작으로 리그 최고의 외야수로 발돋움했다. 이런 그에게도 불명예스..