[사설] 2025.01.06

비난하는 것에 맘 두지 말자. 어짜피 비난과 비판의 기준은 받아들이는 쪽에서 정할 일이다. 상대방이 나를 공격하고 있다고 느끼는 순간, 차분히 생각할 시간도 없겠지만, 욱하지만 않는다면 약간의 생각할 시간은 있을 것이다. 그것이 물리력, 폭력,이라면 당해낼 재간이 없겠지. 아무튼 생각이란 것을 해보자. 상대방이 나를 공격하고 있다고 느끼는 순간, 나는 생각을 해보았다. 받을 것인가 저항할 것인가. 받는 순간 비난이 될 것이고 저항하는 순간 비판이 될 것이다. 저항할 방법이 없다면 인정하자. 저항을 했는데 상대방이 받지 않는 경우가 있다. 이럴 때 답답하다. '아'는 비판이라 생각하고 상대를 공격했지만 '여'는 비난이라 인식하였다. 갑갑하다. 비판은 상호 의견을 한 곳으로 수렴시키는 것이라 교육을 받아왔건만 애초에 의견을 하나로 모을 생각이 없는 상대에게 무슨 소용이 있겠는가 비난에는 비난으로 맞받아쳐야하는가에 대해 다시 잠시 생각해본다. 대립하지 않는 동등한 개체의 만남은 물리적 충돌을 가져온다. 어쩌면, 보이지 않을 수도 있다. 동일 극성의 자석처럼 부딪히지 않으면 그나마 나을 것 같지만 서로 끌리는데는 다 이유가 있다. 참아야하는가 다시 저항해야 하는가 아니면 공격해야하는가 아, 공격이란 단어가 있었다. 수동적인 잣대로 이 둘을 구분했으니 파쇄에 대한 생각을 미처 하지 못했다. 파쇄의 논리. 논리라 할 수 있을까. 살고자 하나 죽을 따름이다. 정치는 비난과 비판, 그리고 파쇄의 난장판이다.

VSCode에 Snippet 등록하기

- pallet에서 '코드조각: 코드 조각 구성' 선택 - 적용할 확장 선택하면 에디트 창이 열리는데 거기에 작성방법 잘 되어있으니 참고하여 작성 - VSCode 설정에서 `editor.tabCompletion`으로 검색해서 옵션값을 `onlySnipptes`를 선택 - `prefix` 부분에 적어놓은 snippet입력 후 `tab`을 누르면 자동완성된다. ## 예제: markdown `plant`를 입력 후 탭키를 누르면 자동 완성된다 ```json { "add plantuml" : { "prefix": "plant", "body": [ "```plantuml", "@startuml", "skinparam monochrome reverse", "left to right direction", "", "$1", "@enduml", "```", ], "description": "plantuml 코드영역 추가" } } ```

VSCode에서의 VIM 단축키와 키보드 구매 가이드

``` [!NOTE] Winddows와 Macos macos를 기준으로 설명하고 있으나, 거의 대부분 macos의 `Cmd`키를 `Ctrl`키로 변경하면 windows에서도 그대로 사용할 수 있음 ``` # VSCode 단축키 - `Cmd + p` : 파일 오픈을 위한 palette - `Cmd + shift + p` : 명령어 실행을 위한 palette. `Cmd + p` 한 다음 '>'를 입력해도 됨 - `Cmd + shift + o` : 현재파일에서 심볼 찾기 (field, method, function 등). `Cmd + p`한 다음 '@'를 입력해도 됨 - `Cmd + Opt + ` : 열려있는 편집기 전환 - `Cmd + shift + e` : 편집기와 탐색기를 전환 함. (탐색기에서 vim 커서 이동 키도 동작한다는 것이 핵심) - `Cmd + Opt + ` : 열모드로 블럭 지정. (VIM단축키와 조합하면 최상임. 이건 글로 설명이 안됨) --- ``` [!NOTE] VSCode용 Vim 확장 - 여기서는 vscodevim 에서 제작한 Vim 확장을 설치하여 사용한다. Vim 단축키는 다를 바 없다. - `esc`키를 눌러 Normal모드 진입시 '한글' 입력상태인 경우 많이 불편하다. '한영'을 자동으로 변환해주는 여러 방법들을 써봤지만, 몇 일 지나면 풀려서 잘 동작 안한다. 그냥 Normal 모드 진입시 '한영'변환을 신경써서 잘 해주자. (시간낭비하지 마세요) - macos의 경우 `Cmd`키와 `Caps`키를 바꾸자. - Windows의 경우 `Ctrl`키와 `Caps`키를 바꾸자. (써보면안다. 얼마나 편한지) ``` ``` [!warning] - 표기된 모든 단축키는 `대소문자`를 구분합니다. (shift 입력하기 귀찮아서임) - `잘라내기`라고 표기한 것은 `붙여넣기`가 가능하다는 뜻입니다. - VIM 모드 전환은 직...

원화(₩)대신 백틱(`) 입력되게 하기 (macos)

맥북 키보드에는 따로 ` 키가 없다. 그래서, 한글 상태일 때는 ₩가 입력된다. 영어 상태일 때는 `가 입력된다. 이것을 바꿔보자 DefaultKeybindings 설정 [ 공식문서 ]에 나와 있는 내용이다 1. KeyBindings 폴더 생성 ``` $ mkdir -p ~/Library/KeyBindings ``` 2. DefaultKeyBinding.dict 파일 생성 ``` $ vi ~/Library/KeyBindings/DefaultKeyBinding.dict ``` 3. DefaultKeyBinding.dict 파일에 아래 내용 추가 ``` { "₩" = ("insertText:", "`"); } ``` 재부팅

페이퍼로지 폰트

## 다운로드 링크 - https://freesentation.blog/paperlogyfont#footer-background

스프링부트 Profile Specific Files

## Profile - 프로파일은 인물이나 캐릭터에 대한 정보를 개괄적으로 간략히 전달 할 때 사용된다. 마찬가지로 애플리케이션이 구동되는 환경을 간략히 표현하고자 할 때에도 사용되는 단어다. - 일반적으로 애플리케이션 실행환경에 따라 다음과 같이 구분한다. - local : 개발자가 개발하는 최소 환경. 데스크톱, 노트북 등 - dev : 내부 개발자들을 위해 애플리케이션이 실행되는 환경 - stage : 고객이 테스트하기 위한 환경 - prod : 애플리케이션이 실제로 동작하는 환경 - 이름은 프로젝트에 따라 다를 수 있다. ## Profile Specific Files - 스프링부트에서는 환경에 따라 application-${profile명}.yml 과 같이 파일을 작성해 두면 해당 프로파일의 config정보만을 참고한다. - 예를들어 다음과 같이 설정파일을 만들었다고 했을 때, ``` application.yml application-local.yml application-dev.yml application-prod.yml ``` - `dev` 프로파일로 애플리케이션을 실행하면, `application.yml, application-dev.yml` 의 설정만 읽게된다. ## 실행할 프로파일의 지정 ### default 프로파일 지정하기 ``` # application.yml spring: profiles: active: local ``` - 참고로 spring.profiles.active 는 profile과 관련없는 곳에서만 사용가능하다. `spring.config.activate.on-profile` 이 사용되지 않은 곳. ### 실행할 때 프로파일 지정하기 ``` $ java -jar app.jar --spring.profiles.active=prod $ ``` ## 파일 하나에 프로파일 설정하기 - `---` (대시 3개)를 구분자로 사용한다. ``` # this document is valid spring: profiles...

메시징 시스템 기초이론

## 메시지 채널(Message Channel) - 어떻게 메시징을 통신 해야할까? 메시지 채널을 통해 통신한다. - 메시지 채널은 메시징 시스템의 논리 주소이며, 자동으로 채널이 만들어지게 하는 것보다는 시스템간 협의에 의해 미리 만들어진 배포 시 고정되는 것이 좋다. 실행 중 추가된 채널은 다른 애플리케이션이 알기 어려우므로 유용하지 못하다. - 메시징 시스템에서는 아래와 같이 다양한 용어들이 동일한 의미로 사용되고 있다. - 발신자와 수신자 sender receiver - 생산자와 소비자 producer consumer - 게시자와 구독자 publisher subscribe - 요청자와 제공자 requester provider - 잘 디자인된 채널 집합은 메시지 버스를 형성한다. ## 메시지 - 채널을 통해 어떻게 정보를 교환할까? 메시지로 교환한다. - 일반적으로 데이터는 바이트 스트림으로 전달되며, header와 body 로 구성된다. - 그러나, 애플리케이션 입장에서 메시지르 ㄹ적용하는 스타일은 아주 다양하다. - 명령 메시지 : 원격 프로시저 호출 - 문서 메시지 : 데이터 전달 - 이벤트 메시지 : 변경 통지 - 대용량 데이터 : 메시지 순서대로 전송 - 시간 범위내에서만 유효한 데이터 : 메시지 만료 지정 - 데이터의 포맷 일치 : 정규 데이터 모델로 포맷 지정 ## 파이프 필터 - 메시지에 대한 복잡한 처리 수행이 필요할 때가 있다. - 필터와 파이프 사이의 연결 부분을 Port 라고도 부른다. 기본적으로 필터 컴포넌트마다 하나의 입력 포트와 하나의 출력 포트를 갖는다. - ![[Pasted image 20240712105719.png]] - 파이프 필터 아키텍처는 메시징 시스템의 기본 아키텍처 스타일이지만 필터를 많이 거치는 경우 많은 채널을 사용하게 되므로 성능에 영향을 줄 수 있다. - 테스트가 쉬워지는 장점이 있다. - 병렬필터는 각 필터가 stateless 인 경우 가장 잘 동작한다. ## 메시지 ...