콘솔창 한글 출력오류_인코딩 설정
사실 처음에는 어제 B반 민선님이 이 문제로 몇 시간동안 골머리 앓으시는걸 본터라, 그냥 바로 튜터님께 HELP요청을 했었다. 그 때 당시에는 프로젝트 만들 때 Build system을 Gradle 말고 IntelliJ로 하시면 어떻냐 하고 그럴 경우 한글깨짐이 일어나지 않았었는데,
직접 강의를 들으니 강사님께서 Gradle로 만들라고 말을 하셨다. 그래서 지레 겁 먹고 튜터님한테 help 쪼로로.. 갔더니
https://da-nyee.github.io/posts/intellij-console-encoding-issue/ 위 링크대로 해보시고 안 되시면 다시 오라고 하셨다.
위 링크로 해결이 되지 않았지만, 너무 질문에 성의 없었던것 같아서 한 번 더 검색해보고 가자는 마음으로 검색을 하였더니.. 바로 해결되었다. (참고 블로그 : https://onlyfor-me-blog.tistory.com/248 )
그래서 민선님께 해결된 것을 공유하였으나, 이미 해결하신 상태였고, 위 방법은 하셨는데 적용이 안 되신 거라던데 의문이 계속 생겼다. (민선님 히스토리 : https://terrific-bathroom-3cf.notion.site/UTF-8-e3bf2dfd2b8744c0aafb493af739753e)
프로젝트 만들 때, Build 시스템을 IntelliJ로 만드는 것과 차이가 뭐지?...
그래서 일단은 간단하게 build system을 다르게 하여 두 프로젝트를 만들고 설정창 비교해 보았다.


IntelliJ로 만들시 육안으로 보기에는 Gradle project 창이 없는 차이가 있고, 코딩 창 우측탭에 Gradle 탭 자체가 없었다. 그래도.. IDE로 사용하고 빌드하는게 빠르다는 것이지.. 무슨 차이가 있을지 모르겠어서 다시 검색..
https://happy-jjang-a.tistory.com/148 ......... 그런데 무슨 소린지 모르겠다.
Gradle이라도 알면 이해에 도움이 될까? 싶어서 검색을 해봤다.
대부분 무슨 소린지 모르겠고.. 그나마 깔끔하게 정리해주신 분이 https://willbesoon.tistory.com/93 이 쪽인데 하나하나 검색하자면 하루종일 한 블로그만 공부해도 모자랄꺼 같고..
빌드 시스템을 검색해 보았다.
IntelliJ Gradle 빌드 디렉토리(out, build) 설정 두개를 나눠 설명하는데..
빌드,배포,컴파일의 차이점
https://choseongho93.tistory.com/296
찾아보면 찾아 볼 수록.. 이해는 안 되지만 해결한 방식이 옳은게 아니란 생각이 든다.
해결
정말.. 빠트렸는지.. https://da-nyee.github.io/posts/intellij-console-encoding-issue/ 처음 튜터님이 주셔서 참고한 자료에서

이부분이 적용이 안되어 있었고.... 그것을 다시 하니 된다... 프로젝트 다시 만들어 해봐도 된다.. 머쓱...
알고보니... 슬랙잡담방에 올라와 있었다. 내가 질문을 드려 공지하신건지, 공지하고나서 내가 질문을 드린건지 모르겠다.. 질문하러가기전에 한번 슬랙 잡담방도 살펴보자 ㅠㅠ.
잡담방에 연희튜터님이 공유해주신 최후의 방법 블로그... 모든 방법이 이 안에 들어있다..
[Intellij]콘솔창에 한글이 깨져서 나올때 최후의 방법
안녕하세요 여러분들도 한번씩은 겪어보셨을만한 상황을 가지고 와봤습니다. 제 상황은 콘솔창에 한글이 깨져서 나오는 문제상황이었습니다. > 이런 간단한 한글을 띄우는게 목적이었으나 한
velog.io
인코딩?
본래 코드화, 암호화를 의미하지만, 컴퓨터에서의 인코딩은 문자셋을 컴퓨터가 이해할수 있는 바이트와 매칭하여 숫자형으로 변환 시키는 규칙을 의미
짧고 간략하게 설명해준 블로그 : https://rollercoaster25.tistory.com/197
1-3 변수와 상수
변수
사과는 맛있어, 나는 그것에 알레르기가있어 너는 그것을 좋아하니?
변수란 위 예시에서 그것과 같은 것.
내가 원하는 데이터를 변수로 지정해 놓으면 그 데이터를 매번 기억하지 않고도 그 변수에 이름을 떠올려서
그변수의 이름으로 대신 사용할수 있는 것
어떤 데이터를 저장하기 위한 메모리 공간의 이름
컴퓨터 내부적으로 보면 데이터는 메모리에 저장이 되고 그 메모리를 가리키는 이름을 지어주는게 변수
int number = 5;
System.out.println(number); // 결과값 : 5
String sparta = "Hello Sparta";
System.out.println(sparta); // '=' 이라는 표현은 '할당한다' 라고 표현
일반 변수는 다른값으로 할당이 가능.
상수는 똑같은 변수인데 앞에 final 이라는 키워드를 붙여 선언 상수는 다른값으로 제할당이 안됨.
final int finalNumber = 1;
System.out.println(finalNumber);
final : 접근제어자 (있을수도 없을수도 있음)
변수를 선언할 때는 [접근제어자] [변수의 자료형] [변수의 이름] 의 방식을 이용
변수의 경우, 첫시작을 숫자 및 특수문자 사용 불가 ex)int 1st, int #final
변수의 네이밍 규칙. (convention)
java의 경우,
캐멀케이스(camelCase) 낙타의 등모양을 한다는 의미로 첫글자는 무조건 소문자, 그 뒤 단어의 의미 단어마자 첫글자를 대문자로 넣어줌.
주의! Java는 문장의 끝에 세미콜론을 사용해야 합니다! 그렇지 않을 경우 컴파일 오류가 발생합니다!
1-4 자료형 - 기본 자료형
Primitive Type(기본 자료형) - 숫자형
short s = 1; //2bite로 표현할수 있는 정수형 자료형
System.out.println(a);
int a = 3; // 정수형 변수 선언
System.out.println(a);
long b = 1234567890L; // Long 정수형 변수 선언
System.out.println(b);
float c = 5.5F; // float 실수형 변수 선언
System.out.println(c);
double d = 9.12345678901234567890d; // double 실수형 변수 선언
System.out.println(d);
// 다음처럼 각 자료형의 MAX, MIN 값을 가져올 수 있습니다.
System.out.println(Short.MAX_VALUE); //32767
System.out.println(Short.MIN_VALUE); //-32768
System.out.println(Integer.MAX_VALUE); //2147483647
System.out.println(Integer.MIN_VALUE); //-2147483648
System.out.println(Long.MAX_VALUE); // 등등.. 보통 int를 자주 사용
System.out.println(Long.MIN_VALUE);
System.out.println(Float.MAX_VALUE);
System.out.println(Float.MIN_VALUE); //소수형으로 자주 표현되기에 4E-45
System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE); //소수형으로 자주 표현되기에 9E-324
Primitive Type(기본 자료형) - 문자형
char c = 'A'; // 문자형 변수 선언
System.out.println(c);
// char type은 default 값이 없습니다.
charsms character의 약자입니다. character는 글자 하나만 표현.
Primitive Type(기본 자료형) - 논리값
boolean fact = true; // 논리형 변수는 true, false의 값을 가진다.
System.out.println(fact);
// boolean type은 default 값이 없습니다.
출력하는데 사용하지 않고 반복문, 조건문 등 어떤 경우의 수를 판단할 때 사용.
Primitive Type(기본 자료형) - 바이트
byte data = 'd';
System.out.println(data); // 알파벳 d는 ASCII code 에서 십진법으로 100이기 때문에 100이라는 글자가 출력됩니다.
bite는 초보때는 직접쓰실일은 없지만, 모든 data는 bite로 표현할수 있다. 컴퓨터에서 표현되는 모든 데이터는 bite의 연속
1-5강 참조자료형, 배열.
import java.util.Arrays;
public class Main2 {
public static void main(String[] args) {
// write your code here
int[] intEmptyArray = new int[5]; //아무값도 할당 받지 않은 5개짜리 배열이 int배열이 선언 된 것
System.out.println(Arrays.toString(intEmptyArray)); //Arrays는 Arrays.toString으로 감싸서 출력해야 보기 좋게 출력.
int[] intArray = new int[] {1,2,3,4,5}; //선언과 동시에 초기화하는 방법, 이럴경우 사이즈 입력 x , element 가 5개
System.out.println(Arrays.toString(intArray));
String[] stringEmptyArray = new String[5];
System.out.println(Arrays.toString(stringEmptyArray));
String[] season = {"봄","여름","가을","겨울"};
System.out.println(Arrays.toString(season));
System.out.println(season[season.length - 1]);
}
}
Reference Type(참조 자료형)
기본 자료형이 아닌 모든 것 참조 자료형이라고 합니다.(java언어의 특징)
더 정확히 얘기하면 참조자료형이란 java의 인스턴스(=객체) 를 가르킬수 있는 자료형
String : class를 이용한 참조자료형
윈도의 경우 control을 누르면 커서가 손가락으로 바뀌고 string(보고싶은 키워드)을 누를 시,
스트링이 선언된 구현체로 넘어감.
구현체 : 자바언어를 개발한 사람이 미리 만들어 놓은 것. (다 class 인 듯? 싶다)
클래스로 정의된 타입을 쓸때는 다 참조 자료형이다.
자료형[] 변수 = new 자료형[배열의크기] 의 형태로 선언
int는 기본자료형, []는 배열이라는 의미
int[] : 인트 배열, 인트를 여러개를 담을수 있는 것.
배열이란 : 동일한 자료형의 데이터를 연속된 공간에 저장하기 위한 자료구조
자료형의 데이터를 연속된 공간에 저장하기위한 자료구조입니다.
배열없이 데이터 선언 시, 변수 갯수가 많아짐. 배열 사용 시,코드를 짧고 간결하게 쓸수 있음
배열에서 몇번째 데이터 몇번째를 의미하는것을 인덱스. 실제로 컴퓨터가 가르키는 인덱스는 0번부터 시작합니다.
int[] intEmptyArray = new int[5]; //아무값도 할당 받지 않은 5개짜리 배열이 int배열이 선언 된 것
array 같은 경우 여기에 선언만 하지 않고 초기화를 하지 않으면 해당하는 타입의 초기화되는 값을 디폴트로 가지게 됩니다.
Primitive Type(기본 자료형) int같은 정수같은 경우는 디폴트값이, 기본값이 0
Reference Type(참조자료형)은 기본값이 없습니다. java에서 아무것도 없다는 표시를 null 이라고 표시.
몇번째 인덱스 인지 모르겠는데 마지막의 배열을 출력하고 싶어
length 모든 배열에 내장되어있는 함수, 배열의 마지막값.
배열은 인덱스 번호를 0,1,2,3,4,5 사실 마지막값을 가져올려면 length의 -1값을 넣어줘야 마지막께 출력.
우리가 코딩을 직접 할경우 길이를 모두 알고 하는경우가 별로 없어 array를 직접쓸일을 별로없음
가변적인 배열을 나타내는 ArrayList라는 자료형이 있음. collection 종류 중 하나.
코드 잘 짜는법
문법을 배우는 것과 코드를 잘 짜는것은 다르다.
친절한 IDE를 잘 활용하자.
오늘 한 일
1.살짝의 현실도피와 함께 놀았다.
2.마음의 평화를 찾았다. (https://www.youtube.com/watch?v=2N4eTTipm9I)
느낀점
1.흠.. 차분해지자...
2.정신이 계속 가출하면 그냥 다 타이핑해서 들어버리자.
3.좀 생각 좀 하자..
4.슬랙 잡담방에 좋은 정보가 많았다. 알림이 안 울려서 몰랐는데, 4기 공통, 스프링 방에 진짜 튜터님들이 좋은 정보를 많이 올려주셨었다. 그걸 못 보고 뒤늦게 기뻐하고.. 헤매고.., 그런데 전엔 멘션만 설정해놔서 그런 것 같고, 좋은 정보가 계속 올라온다는걸 알고 모든 새 메시지로 설정을 바꿔 놨는데 슬랙을 열고 있으면 알림이 안 울리는것 같다.
'TIL' 카테고리의 다른 글
| 22.11.09_TIL_내배캠 (1) | 2022.11.09 |
|---|---|
| 22.11.08_TIL_내배캠 (0) | 2022.11.08 |
| 22.11.05_TIL (0) | 2022.11.06 |
| 22.11.04_TIL_내배캠 (2) | 2022.11.05 |
| 22.11.03_TIL_내배캠 (0) | 2022.11.04 |