-
2022년 8월 3일 TIL - 명쾌한 답이 검색되지 않는 문제Today I Learned 2022. 8. 3. 23:58
이월 이전 프로젝트 과제 주차에 들어가기 직전에 지금의 퀘스트 과제처럼 팀원들 모두가 힘을 합쳐서 도전했었던 과제가 하나 있었다. 웹 서버로 동작하는 Todo List 만들기였다.
그때 겪었었던, 피하고 싶었던 문제를 지금 다시 겪고 있다. 바로 서버로 전송된 문자열에 대한 인코딩 문제이다.
form 요소 내부의 input 입력창에 입력된 데이터들을 submit 속성을 갖는 버튼을 클릭해 서버에 전송하면 전송된 데이터들을 읽어들여 무언가를 처리하도록 하는 구조를 만들고 있었다. 이때 한글 데이터를 서버에 전송하면 서버에서 읽어들이는 문자가 원래의 한글 형태가 아닌 어떤 다른 형태의 문자열이 전달되고 있다.
2번의 뽀모도로 사이클 동안 확실하게 이거는 이거다! 라고 얘기할 수 있을 수준으로 알아낸 정보는 다음과 같다.
- 서버로 데이터가 전송될 때의 Content-Type이 application/x-www-form-urlencoded 형태이다.
놀랍게도 이것뿐이다. 전송된 데이터를 UTF-8 형태로 어느 시점에서 변환시켜줘야 하는지와 같은 정보는 쉽게 찾아지지 않고 있다. 'form 한글 인코딩' 'java scanner UTF-8' 'application/x-www-form-urlencoded 한글' 이런 식으로 다양한 키워드를 조합해 검색해봐도 '그래서 Java에서 소스코드 상에서 어떤 작업을 수행해줘야 저렇게 인코딩된 문자들을 다시 원래의 한글로 디코딩할 수 있는지'에 대한 내용은 나오지 않고 있다.
일단 인코딩에 계속 지체하기에는 주어진 시간이 모자라니, 일단 Todo List에서 사용했던 인코딩 방식을 이용해 문제를 임시방편으로 해결하고, 퀘스트 과제를 제출한 뒤 트레이너님께 질문드리거나 키워드의 범위를 좀 더 넓혀 검색해보는 식으로 문제의 원인을 찾아볼 계획이다.
'Today I Learned' 카테고리의 다른 글
2022년 8월 5일 TIL - 나는 무엇을 하고 싶을까? (0) 2022.08.05 2022년 8월 4일 TIL (1) 2022.08.04 2022년 8월 2일 TIL - 일단 끝내라, 끝내고 봐라 (0) 2022.08.02 2022년 8월 1일 TIL (0) 2022.08.01 2022년 7월 31일 TIL - 체육복 (0) 2022.07.31