본문 바로가기

Programing

(393)
[JOOQ] MySQL JDBC batch 벤치마킹 batch 처리에 대한 의견 코드리뷰를 하다 jdbc의 batch 처리를 하면 성능 효과를 얻을 수 있을 것 같다는 성준님의 의견이 있었다. executeBatch 를 이용한 방법입니다. (e.g Batch Processing in JDBC atBaeldung) 단일 DELETE N 건 실행 대비, 성능상 이점이 있습니다. 평소 성준님은 최적화에 대해 M.A.Jackson의 말을 인용하시던 분이었다. 최적화를 할 때는 아래의 두 규칙을 따르라. 규칙1: 하지마라 규칙2: (전문가들만 따를 것) 아직은 하지마라 - 완벽히 명료한, 최적화되지 않은 해답을 얻을 때까지는. - M. A. 잭슨(M. A. Jackson) 사실 네트워크 round-time을 생각해본다면 상식적으로 한번에 batch로 보내는 것이 ..
[Contact] v2.1 - 앱 크래시 핫픽스 앱 크래시 현상이 발견되어 핫픽스를 진행해였습니다. (관련 내용은 아래에 적어둡니다.) 이전 버전: namocom.tistory.com/906 (v2.0) 릴리즈 SHA-1: 32b66326e74c883f382c5e3695e209ab3845379a 원인 1. 앱 실행시 종료 문제 전에는 Apple Develop을 유로로 구독하지 않아도 내부적인 용도로 사용을 위해 sigining이 가능했습니다. 그런데 어느 순간부터 정책이 바뀌어서 더 이상 사이닝이 불가능해졌습니다. 정책이 바뀌기 전 프로젝트 설정이 사이닝으로 되어 있는데 실제로는 사이닝이 안되고 있어서 앱이 인증 문제로 바로 종료되는 문제가 있었습니다. 결국 설정에서 코드 사이닝을 제거하는 것으로 일단 해결했습니다. 2. 앱 실행후 종료 문제 한글을 ..
[Contact] v2.0 (서브디렉토리 처리 기능 추가) macOS Catalina에서 crash가 발생하는 것이 확인되었습니다. 이 버전은 사용하지 마시고 v2.1을 사용바랍니다. 2020년 10월 9일 한글날 버전에 이어 디렉토리의 경우 하위 디렉토리까지 처리하는 기능을 추가했습니다. 주의할 점은 너무 많은 서브디렉토리가 있는 경우 처리에 오래걸릴 수 있습니다. 릴리즈 SHA-1: bf6fe57e0ffe47a66383974470c170375b128ca8 Release: github.com/namhokim/cocoa_app/releases/tag/contact-v2.0
[Contact] 한글날 버전 v1.09 2020-10-12 버전: 2.0이 릴리즈 되었습니다. 한글날을 맞아 한글 자음과 모음을 합쳐주는 애플리케이션 버전을 업데이트했습니다. 시간이 없어 마이너 업데이트만 진행하였습니다. 릴리즈 SHA-1: 8c0321a0920bffb280144ba74e12aaa9faead3b9 Release: github.com/namhokim/cocoa_app/releases/tag/Contact-v1.09 추가 기능: 이번에 추가된 feature는 dock에 파일(들)을 drag & drop을 하면 변환되도록 하는 기능을 추가하였습니다. 천마디 말보다 하나의 동영상이 더 이해하기 쉽습니다. 3가지 케이스. 동일한 Dock의 아이콘 중 왼쪽이 구버전, 오른쪽이 신버전입니다. CFBundleDocumentTypes 이 기능..
[macOS 10.11+] Contact(한글 자모 합치기 for mac) 2020-10-12 버전: 2.0이 릴리즈 되었습니다. 2020-10-09 버전: 1.09가 릴리즈 되었습니다. 라이센스 본 애플리케이션은 오픈소스 소프트웨어(Open Source Software)입니다. 개인용 및 회사에서 사용이 가능하고 재배포 또한 가능합니다. 다만, 재배포시에 댓글로 재배포 하는 내용(URL 등)을 남겨주세요. (별도의 승인 필요없습니다.) 개요 애플리케이션명: Contact 버전: 1.0 지원 macOS 버전: 10.11(El Capitan) 설명: macOS 용 한글 자모(자음과 모음) 교정 애플리케이션입니다. 다운로드 위의 링크 혹은 깃헙(GitHub) 릴리즈 노트에서 가능합니다. $ shasum Contact-v1.0.zip 8d4ae49af417eb37292c2c3693a..
[Cocoa] 메뉴의 응답을 Controller에서 받게 하기 First Responder에 대해 정확히 이해를 못해서 메뉴에 대한 핸들러를 구현하는데 어렵게 했다. 결론적으로 아래 동영상이 큰 힌트를 주었다. youtu.be/buhMugErboM?t=1176 유즈케이스: Help 메뉴에 대해 링크를 구현 xcode에서 macOS 앱을 만들면 기본적으로 다양한 메뉴를 자동으로 만들어준다. 맨 오른쪽에 Help 메뉴가 있는데 핸들러는 구현이 되어 있지않다. 스토리보드를 만들면 ViewController가 기본적으로 만들어져 있다. 여기에 핸들러를 구현을 해도 응답이 오지 않는다. import Cocoa class ViewController: NSViewController { // .. @IBAction func showHelp(_ sender: Any) { guard..
[Swift] String test in PlayGround xcode에는 PlayGround 라는 코드를 쉽게 테스트하기 위한 인터페이스를 제공한다. REPL 이라는 말처럼 스크립트 언어를 쓰고 평가를 바로바로 해서 어떤 결과를 만드는지 확인할 수 있는 시스템(체계)이다. import UIKit import Foundation // https://forums.swift.org/t/checking-if-a-url-is-a-directory/13842 // https://stackoverflow.com/questions/24208728/check-if-nsurl-is-a-directory extension URL { var isDirectory: Bool { let values = try? resourceValues(forKeys: [.isDirectoryKey])..
[Contact] 파일열기 다이얼로그: NSOpenPanel 드래그 앤 드롭 으로 구현을 하려고 했는데 너무 러닝 커브가 커서 파일 열기 다이얼로그로 작성을 했다. 코드 스니핏 import Cocoa func openDialog(_ sender: Any) { let panel = NSOpenPanel(); panel.canChooseFiles = true; panel.canChooseDirectories = true; panel.resolvesAliases = false; panel.allowsMultipleSelection = true; if (panel.runModal() == NSApplication.ModalResponse.OK) { if (panel.urls.count > 0) { for url in panel.urls { print(url.path) }..