으앙뀨앙
대표칭호 없음
aaeing 7720d585f6e74924bedda9b5d92084a1
이해도 | 입문자 |
---|---|
게임버전 (JE) | 1.20 |
게임버전 (BE) | 관련없음 |
일단 spigot을 사용하고 있고요
해시맵을 이용해서 각 플레이어 데이터와 직업을 엮어서 저장하려했는데,
서버가 리로드 되는 과정에서는 결국 내부에 있는 해시맵이 지워지네요.. 그래서 해시맵을 파일 안에 저장시켜서 꺼내 쓰려 했는데 이 과정에서 막혔네요.. ㅠㅠ
자바에 대한 지식만 아는 상태라 프로그램간의 연계를 몰라서 이러는 거 같기도 한데.. 참고될만한 것이 있을까요..?
럭펌같은 플러그인도 있는건 아는데 일부러 안쓰고 혼자 해보려고 하고 있습니다.
코코냐
2024.01.22퍼미션 노드..?
으앙뀨앙
2024.01.22자체적으로 제작하는건 힘들겠죠...? ㅎ휴ㅠㅠㅠ 나름 욕심내서 해보려했는데..
으앙뀨앙
2024.01.22감사합니다 답변주셔서!
qsef1256
2024.01.22요약: DB 쓰세요. 그리고 그냥 럭펌 쓰는 것도 나쁘지 않습니다.
기본적으로 자바에서 변수를 통해 만드는 정보는 주기억장치, 즉 RAM에 저장됩니다, 정보를 영구적으로 저장하려면(=서버가 꺼져도 남아있게 하려면) 보조기억장치, 즉 하드디스크 또는 SSD등에 정보를 저장해야 합니다. 이렇게 하는 이유는 보조기억장치는 용량이 큰 대신 속도가 많이 느리기 때문이며, 이를 메모리 계층 구조라고 합니다. 이는 컴퓨터 공학의 운영체제 과목에서 배우실 수 있습니다. 따라서, 여기서 얘기하는 "프로그램 간의 연계" 같은 걸 배우려면 컴퓨터 공학 커리큘럼을 따라가시면 됩니다.
보조기억장치에 정보를 저장하는 방법은 여러가지가 있는데, 사실 그냥 txt 파일에 정보를 저장해도 보조기억장치에 저장이 됩니다. 그러나 데이터를 다룰 때 제일 많이 사용하는 방법은 DB를 사용하는 겁니다. DB 종류는 여러가지가 있는데 크게 RDBMS와 NoSQL로 나뉩니다. 이는 데이터베이스 과목에서 배우실 수 있으나, 간단히 요약하자면 RDBMS는 표고, NoSQL은 표 모양이 아닌 DB를 말합니다.
대부분의 데이터는 RDBMS로 충분히 다룰 수 있기 때문에, 보통 DB라고 하면 RDBMS를 먼저 찾습니다. 그리고 RDBMS도 여러 종류가 있지만 적어도 플러그인 개발에서는 MySQL이 제일 보편적입니다. 근데 데이터베이스는 기본적으로 외부 프로그램이기 때문에 자바 자체적으로 DB와 통신할 수 있는 API, 즉 JDBC를 제공합니다. 따라서 자바에서 DB를 사용한다면 JDBC를 사용하면 됩니다.
JDBC를 통해 MySQL을 플러그인에서 사용하는 방법은 Spigot Wiki에 있습니다: https://www.spigotmc.org/wiki/mysql-database-integration-with-your-plugin/
추가로, 이미 존재하는 물건(럭펌)이 있다는 걸 알면서도 따로 개발을 하는 건 좋지 못한 습관에 속합니다. 이를 바퀴의 재발명 이라고 부르며, 특수한 경우이거나 학습 목적이 아닌 이상 추천하지 않습니다.
으앙뀨앙
2024.01.22와... 사실 학습목적도 있고 약간의 개인적 욕심도 있어서 해봤는데 계속 해메다가 덕분에 좀 길을 찾은거 같네요!! 정말 감사합니다!!