이번에도 오늘 들은 강의에 대한 내용을 적는 숙제이다.
오늘은 본격적으로 코딩을 입문하면서 이것저것 배웠다.
String과 Date, UI 클래스를 사용하는 것, 외부 클래스를 가져오는것 말고 해당 코드 내에서 변수 선언하고 사용하는 객체를 인스턴스 객체라고 부른다는 것, 인스턴스 객체는 선언 즉시 초기화 된다는 점, 외부 클래스 변수는 그렇지 않다는 점(초기화 되어있지 않음), 그리고 byte와 int 같은 선언한 변수 타입의 크기에 따라 값이 달라질 수 있으니 조심해야 한다는 것 등등을 배웠다.
학교에서 배울 때는 그냥 무조건 int 아니면 double만 쓰니까 byte처럼 작은 단위에 대해서 배우는건 처음이였다.
byte는 범위가 -128에서 128까지 밖에 안되는 작은 범위의 단위이기 때문에 위의 코드처럼 int age2를 132로 초기화하고 강제로 byte 변경한 뒤 출력하면 -124로 오류 출력이 나오게 된다. 최대 범위에서 4만큼 다시 옆으로 이동하다보니 역으로 뒤에서 4번째로 작은 숫자가 되버린 것이다.
세계 3대 악마게임으로 유명한 '문명' 시리즈에도 이와 같은 사례가 있다.
문명 2탄이였나? 하여간 엄청 옛날 버전에 있던 헤프닝인데, 인도 문명의 지도자 간디의 AI는 간디의 비폭력주의에 걸맞게 폭력성과 호전성이 1밖에 안되지만, 문명 게임의 이런 저런 국가 사회 정책 중에서 AI의 호전성을 낮추는 사회 정책이 있다고 한다.
하지만 원래부터도 폭력성 1이였던 간디였기에, 이 정책을 찍으면 오히려 1에서 더 낮아지려다보니 폭력성 값이 역으로 호전성 최대 수치로 이동하게 되는 현상이 일어나게 되었다. 마치 위에서 사진 올린 132를 128이 최대수치인 byte로 표현하려니 -124가 되는것과 같은 현상이라고 볼 수 있다.
이로인해 온순하던 간디 AI는 갑자기 전쟁 미치광이가 되어서는 전세계 문명과 전쟁하고 핵폭탄을 마구 날려대는, 현실 간디의 이미지와는 180도 다른 행동을 보이기 시작했고 게이머들은 이를 매우 재미있어했다고 한다. 결국 이는 문명 시리즈의 전통으로 남게 되었다고....
다만 최근에 다시 알아보니 이것은 그저 유저들의 추측글이라는 내용의 인터뷰도 있어서 조금 헷갈리긴 한다. 하긴 게임을 이렇게 엉성하게 구성했을리는 없을것 같기도하고, 나 역시도 문명5는 좀 많이 해봤는데 간디가 이렇게 행동하는건 단 1번도 보지 못했다. 뭐가 시리즈의 전통이야.
어쨋든 아주 유명한 이야기고, 위의 int byte와 연관된 재밋는 일화여서 적어보았다.
그 외에도 여러가지 자바 코딩에 대한 기초적인 교육을 들을 수 있었다.
----------------------------------------------------------------------------------------------------
그리고 강의 시작한 이후로 이클립스 실행 시마다 오류가 난다. 강의 때문에 이클립스를 또 깔아서 그런건가? 그건 아닌것 같고...
자바 경로 어쩌고저쩌고하는데, 난 분명히 시스템 환경 변수 설정도 전부 제대로 했다.
이 오류도 참 싱겁고 웃긴게, 시스템 환경 번수 들어가서 '그냥 확인만 다시 누르면' 해결된다. 다시 주소 입력하거나 뭐 그럴 필요 없이 그냥 확인만 다시 누르면 오류가 해결된다. 이럴거면 도대체 왜 오류가 나는거지.
문제는 이 짓을 컴퓨터 부팅시마다 계속 해줘야한다는 것이다.
ini 파일에서 vm경로를 만져봤지만 여전하다.
조만간 해결방법을 찾아서 포스팅 하겠습니다.
'[K-Digital] 온·오프 연계 AI활용 지능형 서비스 개발' 카테고리의 다른 글
멀티캠퍼스 AI 온라인 강의 숙제 06번째 (0) | 2021.02.03 |
---|---|
멀티캠퍼스 AI 온라인 강의 숙제 05번째 (0) | 2021.02.02 |
멀티캠퍼스 AI 온라인 강의 숙제 04번째 (0) | 2021.01.31 |
멀티캠퍼스 AI 온라인 강의 숙제 03번째 (0) | 2021.01.29 |
멀티캠퍼스 AI 온라인 강의 숙제 01번째 (0) | 2021.01.27 |