본문 바로가기

분류 전체보기

(887)
[iTerm2] 한글이 풀어져보인다면... macOS와 다른 시스템(예. 윈도우, TV)를 같이 사용하다보면 한글이 풀어진 경험을 하게 된다. 나의 경우는 iTerm2와 sublime Text 2에서 이런 현상을 쉽게 확인할 수 있다. Finder의 경우 여러 정규화 형태(normalization form)을 지원해서 아래와 같이 잘 보인다. macOS에 기본으로 있는 터미널 앱에서도 잘 보인다. iTerm에 아무런 설정을 안했다면 어떤 버전부터는 아래와 같이 풀려서 보일 수 있다. 특정버전에서는 잘 보일 수 있습니다. - 개인적으로 macOS 10.15.6 (Catalina)에서 - iTerm2 3.3.6 에서는 잘 보이던 것이 - 3.3.12로 업데이트 하면서 풀려서 보이는 것을 확인했습니다. 해결책은? 어떤 블로그에 보니 폴더의 이름을 변형..
[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) }..
[Spring MVC] HandlerMethodArgumentResolver 구현하기 가끔 Controller 에 특정 타입의 값을 자동으로 받고 싶을 경우가 있다. path가 "foo/{a}/{b}" 인데 a 랑 b값을 aggregation 해서 특정 객체로 만들고 싶은데 프레임워크에게 시키고 싶은 것이다. 이럴 경우 @PathVariable 에 대한 메서드 인자 Resolver 를 만들어주면 해결이 가능하다. 기본적으로 @PathVariable Resolver는 두 가지가 있다. PathVariableMethodArgumentResolver PathVariableMapMethodArgumentResolver 위의 경우는 파라미터의 이름이나 @PathVariable 에 지정된 value 의 값을 매핑시켜준다. 가끔 타입 변환이 필요한 경우에는 conversionService에게 타입 변..
[JPA] @Converter 는 어떻게 동작할까? 지니님이 기본 데이터 타입과 String 등을 enum 으로 바꾸는 작업을 진행하셨다. 대부분은 아래와 같이 @Enumerated 으로 enum의 이름을 사용하도록 작업을 했다. import lombok.Getter; import lombok.Setter; import javax.persistence.*; @Entity @Table(name = "TEST") @Getter @Setter public class TestEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "SEQ") private Integer id; @Column(name = "ACTION_TYPE", length = 100) @Enumerated(..
[Hibernate] fail-fast ValidatorImpl 에 아래와 같은 메서드이름이 있다. 패키지: org.hibernate.validator.internal.engine shouldFailFast public class ValidatorImpl implements Validator, ExecutableValidator { private boolean shouldFailFast(ValidationContext validationContext) { return validationContext.isFailFastModeEnabled() && !validationContext.getFailingConstraints().isEmpty(); } @NotBlank at jakarta.validation:jakarta.validation-api:..