naver/kakao service design

2025년 2월 서울 갈일이 있어 웹환경에서 길찾기를 카카오맵으로 해봤는데, 뭔가 결과가 눈에 들어오지 않는 느낌이 들었다.
상세 길 정보를 확장해 클릭해 보면 더 아래 있는 다른 길 정보와 구분이 쉽지 않다.

네이버맵으로 검색하니 보기가 훨씬 편하다.
갈아타는 버스의 정보가 굵고 색깔이 확실히 구분된다. 상세정보는 별도의 팝업으로 다른 길 정보와 헷갈리지 않도록 한것도 맘에 들었다.
지도에는 통제되는 곳도 아이콘으로 표시되는 부분도 좋았다.

이 차이는 포털 검색 서비스 결과에서도 나타난다.
카카오의 지도에서 보이는 답답함과 정렬되지 않는 상세 정보 버튼들이 눈에 거슬린다.

공통적으로 네이버 글자들이 눈에 잘들어오고 정보의 구분이 잘되는 느낌인데 반해, 카카오의 정보는 읽기가 불편하고 답답하다. 좋게 말하면 90년대말~2000년대초의 클래식한 느낌이다.
카카오 나름의 이유가 있고 카카오 디자인을 더 좋아하는 사람도 있겠지만 일반적으로 네이버의 디자인을 더 많이 좋아하지 않을까?
그런데 카카오맵 모바일을 보니 상세길 정보에서 각 단계가 확대돼 보이는등 모바일 편의성은 좋았다.
카카오 서비스들은 모바일은 괜찮은것 같은데 pc web 서비스는 좀 부족해보인다.

별거 아닐 수 있는데 위와 같은 서비스의 차이가 계속 보이니 답답한 마음에 이런 생각들을 해보게 된다.
어디서 이런 차이가 발생할까?
담당자들을 이런 현상을 알고 있을까? 아마 알것이다. 경쟁사의 서비스를 예의 주시하고 있어야 할테니...
그럼 뭐가 문제일까? 사용자가 많은 모발일에 더 집중하는 걸까? pc web 에서 이런 디자인 요소들은 중요하지 않다고 생각하는걸까? 지금 이 UI로도 충분하다고 생각하는걸까?
아니면 알지만 너무 바빠서? 경재사 대비 재원이나 시간이 부족등의 결국 돈의 차이 때문일까?
돈 문제도 있겠지만 결국 서비스를 만드는 사람들의 의지/능력 뭐 이런게 근본적인 원인은 아닐까?
물론 돈이 있으면 없는 의지,능력도 만드는 세상이긴 하다.
결정권자의 판단미스,능력부족,인력부족,여러 분위기도 한 몫 하겠지만 혹시 내가 만드는 서비스의 불편한 점들을 발전 시키려는 서비스 초기의 마음이 누그러져 있는건 아닐까하는 생각이 든다.

nvim taplo toml format error

# nvim(lazyvim)에 .air.toml 처럼 air 이름의 toml 파일을 열면 다음과 같은 diagnostics 에러가 발생한다.
additional properties are not allowed

# 다른 이름의 toml 파일은 문제가 없다.
# lazyvim 에서 기본적으로 toml 파일에 대해 lsp(Language Server Protocol), lint, format 을 위해 taplo(https://github.com/tamasfe/taplo, even better toml) 툴을 설치해 사용한다.
{ import = "lazyvim.plugins.extras.lang.toml" },

# toml 파일을 열면 taplo lsp 프로세스가 생성되어 처리한다.
hwatch -n 1 "ps -ef | rg -i taplo"
/Users/ysoftman/.local/share/nvim/mason/bin/taplo lsp stdio --log-spans

# lsp 사용 정보
:LspInfo

# 해결방법
# nvim-lspconfig > schema 를 비활성화
return {
  {
    "neovim/nvim-lspconfig",
    -- https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md
    opts = {
      servers = {
        taplo = {
          enabled = true,
          settings = {
            evenBetterToml = {
              -- .air.toml 에서 diagnostics 에러가 발생해 비활성화
              schema = { enabled = false },
              formatter = {
                indentString = "  ",
              },
            },
          },
        },
...

# 참고
# toml 파일들 일괄 포멧팅
fd .toml | ~/.local/share/nvim/mason/bin/taplo format --log-spans

# toml 내용 stdin 입력 포맷팅
cat typos.toml | ~/.local/share/nvim/mason/bin/taplo format -

e2e test dependency(sub) chart

# argo-cd 에서 각 컴포넌트들은 배포(싱크완료) 후 e2e test 가 동작한다.
# 각 컴포넌트별로 e2e test template 를 관리하면 버전등의 관리가 용이하지 않다.
# 그래서 e2e test 를 별도 차트로 구성해 여러 컴포넌트들에서 가져가 사용할 수 있도록 해보자.
# 우선 e2e-test 이름으로 다음과 같이 일반적인 차트를 구성한다.
e2e-test
├── Chart.yaml
├── README.md
├── templates
│   ├── _helpers.tpl
│   ├── e2e-test-job.yaml
│   └── e2e-test-secret.yaml
└── values.yaml

# values.yaml 에 필요한 변수를 설정한다.
enabled: true  # e2e test 사용 여부
job:
  name: "default"
  targetURL: "http://ysoftman.test1.abc"
  # 참고 아래 변수는 e2e 결과 txt파일을 github 저장소에 전송하기 위함이다.
  reportRepository: "https://github.com/ysoftman/e2e-test-report"
  reportFileName: "default-e2e-result.txt"

# e2e-test-job.yaml 은 다음과 같이 PostSync 로 싱크 완료후 job 이 시작될 수 있도록 한다.
apiVersion: batch/v1
kind: Job
metadata:
  generateName: {{ $name }}-e2e-test-
  annotations:
    argocd.argoproj.io/hook: PostSync
    argocd.argoproj.io/compare-options: IgnoreExtraneous
  labels:
    app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
spec:
  ttlSecondsAfterFinished: 600
  successfulJobsHistoryLimit: 5
  failedJobsHistoryLimit: 3
  template:
    spec:
      containers:
... 생략 ...

# 템플릿이 제대로 렌더링 되는지 확인해보자.
helm template .

# 이제 사용하는 컴포넌트의 Chart.yaml 에 dependency 를 설정한다.
# 만약 위 e2e 차트를 github page 나 chartmuseum 로 서빙할 수 있다면 http 로 명시할 수 있다.
# 하지만 다음과 같이 e2e-test 를 같은 저장소에 두면 e2e-test 가 변경될때마다 tgz 를 생성해줘야 한다.
# repository 는 
apiVersion: v2
name: ysoftman-server
description: ysoftman test Server
type: application
version: 0.1.0
appVersion: "0.1.0"
dependencies:
  - name: e2e-test
    version: "1.0.0"
    repository: "file://../e2e-test"

# Chart.yaml 경로에서 다음 명령을 수행하면 ./charts/e2e-test-1.0.0.tgz 와 ./Chart.lock 생성된다.
helm dependency update 

# 다음과 같은 구조가되고, ysoftman-server 가 argocd 로 배포(싱크완료)되면 sub chart 인 e2e-test-1.0.0 이 동작한다.
ysoftman-server
├── Chart.lock
├── Chart.yaml
├── README.md
├── charts
│   └── e2e-test-1.0.0.tgz
├── templates
│   ├── _helper.tpl
│   ├── configmap.yaml
│   ├── deployment.yaml
│   ├── ingress.yaml
│   ├── podmonitor.yaml
│   ├── secret.yaml
│   ├── service.yaml
│   └── servicemonitor.yaml
└── values-dev.yaml

# 참고로 values-dev 에서 sub chart 의 변수를 오버라이딩한다면 다음과 같이 sub chart 이름을 최상위로 명시해야한다.
e2e-test:
  enabled: true
  job:
    name: "ysoftman-server"
    targetURL: "http://ysoftman.test2.abc"
    reportRepository: "https://github.com/ysoftman/e2e-test-report"
    reportFileName: "ysoftman-server-e2e-result.txt"