본문 바로가기

Language12

[Obsidian] 플러그인을 개발해보자 토이 프로젝트로 옵시디언이라는 마크다운 편집기 프로그램 플러그인을 개발해 보았다. 자바스크립이나 타입스크립은 처음이라 해맸던 부분들이 많았어서 개발 방법 및 순서를 정리해 보려 한다. 사전 준비 시작 전, 아래의 내용들이 설치되어있어야 한다. Obsidian 디버깅을 위해 필요 Git 배포를 위해 필요 Node.js 사용되는 언어 VS Code 편집기 Step 1 샘플 다운로드 우선 디버깅용 Vault를 만들어준다. 그리고 터미널을 열어 {Vault 경로}/.obsidian/plugins 으로 이동한다. 만약 plugins 디렉토리가 없다면, 만들어주면 된다. cd {Valut 경로}/.obsidian/plugins // plugins가 없을 경우 mkdir {Valut 경로}/.obsidian/plug.. 2024. 3. 15.
[Java] 객체지향 생활체조 (Object Calishenics) Object Calisthenics Jeff Bay 라는 사람이 ThoughtWorks Anthology 라는 공학 에세이 모음집에서 등장한 개념이라 한다. 객체지향 프로그래밍을 잘하기 위한 9가지 체크리스트라 보면 될듯 하다. 1. One level of indentation per method 한 메서드에 오직 한 단계의 들여쓰기만 한다. Why? 메소드에 들여쓰기가 많아지면 가독성이 떨어진다. 객체지향의 사상 중, 하나의 메소드는 한 가지 기능만 담당한다를 위반할 수 있다. example ❌ String board() { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) .. 2023. 10. 25.
[Java] Enum 활용하기 Enum 특정 값들만을 가질 수 있는 타입을 정의할 때 사용된다. 예를 들어, HTTP code의 경우, 각 코드들과 의미가 일대일로 대응되고, 종류가 정해져있으므로, 이를 enum으로 정의할 수 있다. 이렇게 해 두면, 이 타입의 변수는 정의된 값들 중 하나만을 가질 수 있게 되어 코드를 더 안전하게 만들 수 있다. 또한, 자체적으로 클래스이므로, 메소드나 필드를 가질 수 있어 상수를 정의할 때도 사용할 수 있다. ex // enum 정의 public enum Status { OK(200, "요청 성공"), MULTIPLE_CHOICE(300, "하나 이상의 응답 가능"), BAD_REQUEST(400, "서버가 요청을 이해할 수 없음"), NOT_FOUND(404, "요청받은 리소스를 찾을 수 없음".. 2023. 10. 24.
[Java] Functional Interface Functional Interface란? Functional Interface는 Java에서 함수형 프로그래밍을 가능하게 하는 인터페이스다. 이 인터페이스는 오직 하나의 추상 메서드를 가지고 있어야 하며, 람다 표현식이나 메서드 참조를 사용해서 간단하게 인스턴스를 생성할 수 있다. Java 8에서 도입된 이 기능은 코드를 더 간결하고 이해하기 쉽게 만들어준다. Java에서 제공하는 Functional Interfaces Runnable Descriptor: () -> void Method: void run() ex Runnable runnable = () -> { System.out.println("running"); } //사용 runnable.run(); Consumer Descriptor: (T) .. 2023. 10. 24.