게시글
질문&답변
2022.01.08
${data}가 인식이 안됩니당
코드에는 문제가 없어보입니다. 다만 HelloController와 그 안에 있는 hello 라는 모델이 활성화가 되어있지 않은 모습입니다. (사진) (사진)(사진) 다만 질문자님과의 차이는 HelloController에서 직접 만드신 hello라는 모듈이 비활성화되어있는(것 같은) 모습을 보여줍니다. intelliJ에서 회색글씨는 해당 부분을 사용하고 있지 않고있다는 뜻입니다. static폴더에 있는 index.html 그리고 templates 폴더에 있는 hello.html 또한 질문자님과 동일하게 하였고 잘 작동하였습니다. (주석처리를 하였기에 영향을 주지 않습니다.) (사진) (사진) (저는 data에 대한 값으로 spring!! 을 넣어서 저렇게 나오는 겁니다.) 어노테이션에 문제가 있는 건 아닌 것 같아서.. 프로젝트 rebuild를 한 번 해보시는 걸 추천합니다. 그래도 안된다면.. 처음부터 차근차근.. ㅠㅠ 일단 코딩하신 부분엔 문제가 없어보입니다. project rebuild는 프로젝트 폴더에 마우스를 올린 후 오른쪽 마우스를 누른 후 rebuild project를 누르시면 됩니다.
- 0
- 6
- 570
질문&답변
2022.01.07
안녕하세요. 강의 중 정적 컨텐츠 설명 중 안되는 것이 있습니다.
@전주주님 터미널에 있는 기본경로가 jar파일을 실행시키기에는 경로가 맞지 않아서 문제가 생기신 것이 아닐까 싶습니다. intelliJ 하단에서 제공하는 git bash나 terminal의 경우 프로젝트에 대한 기본경로가 맞춰져 있습니다. 그곳에서 강의에서 말씀하신대로 진행하기에 무리가 없을 겁니다. cmd와 같은 콘솔에서 실행되는 모습을 보길 원하신다면 경로를 같게해서 실행하시면 될 것입니다.
- 0
- 2
- 233
질문&답변
2022.01.07
${data}가 인식이 안됩니당
일단 indext.html이라고 index.html 철자가 틀렸습니다. templates로 파일을 옮긴 현 상태라면localhost:8080/hello는 잘 될 것입니다. index.html로 static 페이지의 철자도 바꿔보시면 잘 되실 것 같습니다.
- 0
- 6
- 570
질문&답변
2022.01.03
이런 에러가 나오는데요. 왜 그런 걸까요?
일단은 지금 만드신 것과 강의자료로 주신 ems.member.main 패키지 안에 있는 MainClassUseXMLsImport.java 파일과 비교해보시면서 대조해보세요.
- 0
- 1
- 226
질문&답변
2021.12.29
클라이언트 socket 관련 질문입니다
포트번호는 하나의 서버에서 다른 서비스를 접근할 때 사용하는 것! 앞에 내용을 다시 떠올려보세요.
- 1
- 2
- 240
질문&답변
2021.12.28
finally 구간 질문있어요
null이 아니면 .close()하라는 의미입니다. .close()까지 해야 파일이 안전하게 잘 입력이 됩니다.
- 0
- 2
- 182
질문&답변
2021.12.28
read(), read(byte[]) 한글 출력 아스키코드 다름 문의
이 질문에 의견을 드리기 위해 여러가지를 찾다보니 제법 괜찮은 답에 도달한 것 같습니다. 저는 txt파일을 UTF-8형식으로 저장했습니다. https://bit.ly/3mCYkxJ(참고자료) UTF-8 방식은 즉, 유니코드는 세계적으로 표준화된 문자셋입니다. 여기서 영어와 숫자는 1Byte 그리고 한글은 (받침과 관계없이) 3Byte를 차지합니다. 그래서 read()를 하게되면 한글 한글자당 총 3줄의 data(byte)가 출력됩니다. https://bit.ly/32E12vC(참고자료) 그런데 이 한글은 조합형으로 만들기에는 상당히 비효율적이어서 UTF-8에선 완성형으로 등록이 되어있습니다. 따라서 해당하는 글자가 없다면 이상한 숫자가 나올 수도 있습니다. 이를 바탕으로 질문하고픈 점에 대해 간략하게 말씀드리겠습니다. 1. 한글은 한 글자당 3바이트인데 Byte배열에 쑤셔넣으려는 상황이라 오버플로우가 발생했다. (영어는 글자당 1Byte이기에 관계가 없다.) Byte배열은 인덱스당 1바이트씩 저장하는데 한글은 한글자가 3바이트씩이나 되서 이를 감당하지 못해 발생하는 일이 아닐까 생각합니다. 2. 숫자는 ASCII코드 상 백번대 이상의 숫자가 나오지 않습니다. 48~57 (0~9) 이건 직접 넣어가면서 확인하실 수 있을 겁니다. *증빙자료: 빨강색: read() / 파랑색:read(byte[]) (사진) 1. 한글 '어'가 총 3개의 바이트를 뽑아내는 것을 알 수 있다. 2. byte 자료형은 최대 0~128까지 숫자밖에 표현하지 못한다. 그 이상이 되면 음수로 표현한다. bs[0]의 경우: (선생님의 표현방식은 다를 수 있어도 역할은 동일합니다.) 236 - 128 = 108 108 - 128 = -20 이와 같은 원리로 -20이 나옵니다. (자세한 건 오버플로우에 대해 꼭 검색해보시길 바랍니다.) (사진은 오른쪽 마우스에 새 탭으로 열기를 누르시면 큰 화면으로 볼 수 있습니다.) 정확한 정답은 아닐 가능성이 높지만 여러가지로 깊은 고민을 하게 되었습니다. 감사합니다.
- 1
- 1
- 341
질문&답변
2021.12.28
inputStream.read()질문드립니다
int형인 data 변수는 inputStream.read()가 가져온 전체 텍스트의 내용을 저장하는 것도 그 개수를 저장하려는 목적도 없습니다.. 1byte씩 읽어내는 족족 그 문자들을 읽어오기 위한 프로그램입니다. (여기서는 1byte씩 가져온 문자를 ASCII와 같은 코드로 보여주고 있습니다.) 다시말해 이 프로그램은 전체 데이터를 저장하는 것이 아닌 '한글자씩' 전체에 해당하는 내용을 출력하라는 목적을 가진 프로그램입니다. 내용을 저장하는 변수는 없고System.out.println()을 while문에 넣고 문자가 없는 순간까지(End Of File) 출력하려는 목적을 가지고 있습니다.
- 0
- 1
- 213
질문&답변
2021.12.27
내부클래스 객체선언질문
밑에 질문의 답변과 비슷한 내용이 될 것 같습니다. 생성하신 in객체는 OuterClass안에 있는 모든 객체가 사용할 수 없습니다. 그러나 static 클래스는 다르죠. in 객체는 OuterClass.InnerClass에서 밖에 사용할 수 없는 반면 static Class는 OuterClass 안에있는 모든 클래스들이 공유할 수 있어야 합니다. 그래서 OuterClass.SInnerClass로 따로 설정해주는 것입니다. oc.new SInnerClass()로 설정한다면 OuterClass에서 만든 객체 oc에 한정되어 객체가 생성될 것이기 때문에 static으로서의 의미가 사라질 것입니다.
- 2
- 1
- 166
질문&답변
2021.12.27
System.out.println()
넵
- 0
- 2
- 363