250828

lililllilillll·2025년 8월 28일

개발 일지

목록 보기
277/350

✅ 한 것들


  • 지원서 작성
  • 윤성우의 열혈 TCP/IP 소켓 프로그래밍
  • Project GNC


📖 윤성우의 열혈 TCP/IP 소켓 프로그래밍


Neovim 세팅

neovim kickstart 오류

  • aws instance nvim에서 init.lua를 편집하려 dw 명령어 누르는 순간 오류 발생. 플러그인도 작동 안 함.
  • 동일한 우분투 버전을 가진 laptop에선 kickstart 설치 후 init.lua 동일하게 편집해도 오류 발생하지 않고 플러그인도 잘만 작동 함.
  • instance 삭제 후 재생성 > nvim, kickstart 재설치 > init.lua 건드리기 전에 test.c에서 dw 명령어 사용 > 오류 없음 > init.lua에서 dw 명령어 사용 > 에러 발생
  • gpt가 말한 원인이 lazydev가 Lua 파일이 아닐 때도 로드됨 라길래, 뭔진 모르겠지만 lua 파일이 아니면 되는 건가 싶어서 그냥 플러그인 주석 풀고 test.c 파일 편집 시도했더니 플러그인 정상 작동. dw도 오류 없이 작동.
  • 이전에 플러그인이 작동하지 않았던 건 주석을 마저 안 지워서 그랬던 것으로 추정.

코드 복사도 clipboard provider를 설정해줘야 함.

  • aws 서버에는 화면이 없어서 기본적으로는 불가능하다고 함
  • 데스크톱에서 Windows Terminal이나 WezTerm같은 OSC52 지원 터미널을 깐 뒤에 OSC52 플러그인을 깔라고 함
  • 레포에 가보니 neovim 0.10부터는 OSC52가 기본 지원.
  • gpt가 clipboard 어쩌구 하는데 이미 코드가 있는 걸로 보임.
  • 다시 물어보니 "~/.config/nvim/init.lua(지금 보인 블록 바로 아래)에 다음을 넣어라. Nvim 0.10+ 전제."
vim.schedule(function()
  vim.o.clipboard = 'unnamedplus'

  -- Neovim 0.10 내장 OSC52 프로바이더를 강제 사용
  local osc52 = require("vim.ui.clipboard.osc52")
  vim.g.clipboard = {
    name = "osc52",
    copy  = {["+"] = osc52.copy("+"), ["*"] = osc52.copy("*")},
    paste = {["+"] = osc52.paste("+"), ["*"] = osc52.paste("*")},
  }
end)
  • wezterm으로 ssh 세션 연결 후에 복사하니 이제는 코드 복사가 가능해짐 (init.lua 파일 작성할 때 입력 모드임에도 온갖 오류가 떴음. 당장은 lua 프로그래밍 하는거 아니니까 냅두기.)


🎮 Project GNC


석판 틀 기획

  • 석판이 꽂혀있지 않을 때는 석판 끼우는 상호작용 버튼 UI가 비활성화 된 채로 띄워짐 (팰월드 참고)
  • 석판을 들고 e를 누르면 석판이 끼워짐
  • 석판이 꽂혀있을 때 f를 누르면 석판이 제거되고, e를 누르면 해당 석판대로 상호작용 가능

Structure > 석판 틀 구현

  • e 또는 f를 누르면 아이템의 InteractE, InteractF가 호출됨.
  • ConItemUse에서 각 키를 누르면 inven.currentBox?.InteractX()가 호출됨. (ConInteractable interface에 들어있는 함수)
  • interact할 수 있는 structure은 한정돼있으므로, 굳이 SO로 설계하지 말고 interface를 통한 composition
  • tablet은 인벤에도 존재하고, 인벤 바깥으로 나와서 끼워질 수도 있어야 하므로 item과 structure(non-interactable) 모두 존재

hold action을 구현하는 문제?

  • 예를 들어 음식을 들고 있음
  • 클릭을 시작함. ConItemUse에서 음식의 OnLeftClick이 호출. 코루틴을 호출하여 필요한 행동을 시작.
  • 코루틴에서 매번 if문을 돌려서, 누르고 있지 않으면 코루틴 종료.

구조물과의 Interaction? : 나중에 ConInteract와 상호작용하는 StructureInteractSO 따로 만들기

기획과 코드 설계는 얼추 됐고, 내일 마저 구현



profile
너 정말 **핵심**을 찔렀어

0개의 댓글