2023/06 5

[맥/OSX] 마인크래프트 Forge, 모드 설치법

예시로, forge와 설치할 모드 3개 (CMDCam, CreativeCore, sit)를 준비했다. 다 비슷하게 생겨보이지만 forge는 실행기, 나머지는 모드 파일이다. forge의 jar파일은 공식 사이트에서 다운받으면된다. 먼저 forge를 설치해야한다. 그러기 위해서 forge.jar 파일을 우클릭 > JavaLauncher로 열자. 사진처럼 아이콘이 이미 커피모양일경우, 그냥 더블클릭하면된다. 그러면 이렇게 Mod system installer 창이 뜨는데, Install Client 설치체크해서 OK를 누른다. 그러면 실행기 설치는 완료된 것이다. 설치하고 마크런쳐를 켜면 forge가 추가된게 보일것이다. Finder를 열고 Command + Shift + G를 누르고 ~/Library를 입..

[Game Porting Toolkit] 맥북으로 디아블로4 돌리는 방법 (Battle.net 오류 해결방법)

Game porting toolkit을 이용해 애플 실리콘 맥북으로 디아블로를 돌리는 방법은 Reddit 링크에 자세히 나와있다. 댓글에도 잘 된다고 되어있고 오류를 겪은 사람들은 없어보인다. 난 하루를 바쳤는데 실패했고, 또 이상하게도 클리앙에 보면 안되서 몇 번을 시도했다는 사람들이 많았다. 정신차리고 보니 언어 문제겠구나 싶어서 언어를 고쳤는데 말끔히 해결되었다...ㅋㅋㅋ 해당 튜토리얼을 따를때의 주의점에 대해서 적어보도록 하겠다. 1. OS 버전 Sonoma로 업데이트해야 하나요? OS 버전 macOS Ventura 13.4 버전이상이면 된다. 꼭 Sonoma여야 하는 것은 아니다. ㅇ Sonoma는 필수가 아니지만 Xcode 15 Cli Tools 설치는 필수다... 2. 이미 Apple Sil..

나/이슈 2023.06.11

POSIX 표준에 따라 CLI 애플리케이션 만들기

POSIX (Portable Operating System Interface) UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격. CLI 애플리케이션은 Flag, Option, Argument, Subcommand로 이루어져 있다. 처음 써보는 CLI 앱이어도 --help를 쳐서 나오는 설명을 읽고 당황하지 않고 쓸 수 있다. 프로그램마다 기상천외한 사용법이 있는게 아니라 어떠한 규칙이 있어보이는데, 그것이 바로 POSIX 표준 덕분이다. POSIX 표준은 Command line 옵션을 지정하고 구문분석하는데 사용되는 일련의 규칙을 제공하여 다양한 CLI 툴을 이해하고 사용하기 쉽게 만들 수 있도록 한다. #..

[부산 대연동] 김유순대구뽈찜

누구든 자신있게 데려갈 수 있는 맛집! 아직 블로그에 이 집을 소개 안시켜뒀었다니... 김유순대구뽈찜은 어렸을때부터 오갔던 맛집이라 모든 대구뽈찜이 다 이런건줄알았는데, 여기를 따라올데가 없다는 걸 이제는 깨달았다....ㅋㅋㅋㅋ 일반적인 찜처럼 양념이 다 섞여서오는게 아니라 대구따로 찌고 찐 콩나물로 덮은 뒤 다대기가 얹혀져서 서빙된다. 덕분에 콩나물은 숨을 쉬고 아삭아삭해지면서 맛있는 양념이랑 원하는 만큼 섞어먹응 수 있다. 양념 다대기는 달달한 양파가 중간중간 섞여있는데 아무리 연구해도 따라하기 어려운 미친 밥도둑이다... 정말 미친 집이다.

간단한 예시로 알아보는 iter vs into_iter 차이

iter() &T를 iterate한다: 컬렉션의 Immutable Reference를 생성하여 iterate 수행 컬렉션의 요소를 읽기만 가능하고 수정할 수 없는 상태다. 이를 통해 컬렉션의 요소에 안전하게 접근할 수 있다. let vec = vec![1, 2, 3, 4, 5]; let iter = vec.iter(); // vec에 접근 가능하다. println!("{:?}", vec); into_iter() T를 iterate한다: 컬렉션의 소유권을 가져와서 컬렉션을 소비(consume)하는 Iterator 생성. 컬렉션을 iterate하는 동안 원본 데이터를 소비함을 의미한다. let vec = vec![1, 2, 3, 4, 5]; let iter = vec.into_iter(); // 여기서부터는..