본문 바로가기
비전공자의 코딩 일지/학원 수업 정리

코딩 학원 44일차(xml, json 쓰는 방법)

by Hoder2 2022. 8. 6.

The other side of jsp

1. DB테이블 하나 간단한거 만들어서 데이터 몇개 넣고 웹페이지에 DB에 있는거 다 나오게 DAO에서 select sql 작업 해서 대충 나오게 만들었다.

웹 사이트는 왜 만드는가?
전 세계 모든 사람들이 sql 다 할줄알면 굳이 만들 필요가 없을텐데

모든 데이터는 DB서버에 들어있다.
결론은 sql을 몰라도 db작업을 할 수 있게 하는 것이 웹 사이트를 만드는 이유라는 것이다.

DB서버에 있는 데이터를 제 3자에게 주려면?

빅데이터 관련 사업 중 데이터를 판매하는 사업도 있다.
우리가 파싱을 할 때 기상청 같은 곳에서 json을 따와서 했는데 이제 우리가 그 기상청이 되보자고 하셨다.

selet 결과를 String 한 덩어리로 뭉쳐서 리턴

새로운 컨트롤러 만들고 (컨트롤러 지만 get어쩌구 해야 맛이 산다고..)
아까 만든 메소드 불러와서 Jsp 나오기 전에 쓰던 PrintWriter을 통해 String을 보내준다.

컨트롤러 실행하면 한글 깨져서 나온다.
이런 상황을 피하기 위해 판매자와 사용자의 인코딩 방식에 대한 약속과 파싱 전략에 대한 약속이 필요하다. 

 

그게 바로 XML과 JSON이다.

XML(eXtended Markup Language)
: DB에 있는 데이터를 HTML 모양으로 표현
<테이블명>
<태그명>
<필드명></필드명>
<필드명></필드명>
<필드명></필드명>
</태그명>
</테이블명>
이런식의 전개다.

모든 xml의 첫 시작은 저거다.

이렇게 양식을 바꾸준다.

그리고 컨트롤러 쪽에서 인코딩 방식을 정해준다.

이렇게 잘 나온다.

우린 아직 Js에 대한 수업을 자세히 하지 못했는데

JavaScript의 핵심은 AJAX라고 하셨다. 근데 이건 내가 작업한 xml만 가능하기 때문에 유효성 검사만 슬쩍 하고 넘어간 것이라 하셨다.

JSON(Java Script Object Notation)
:DB에 있는 데이터를 JavaScript 모양으로 표현

[  : 테이블 표현 (배열)
{ : (객체)
"필드명":"값",
"필드명":"값"
},
{
"필드명":"값",
"필드명":"값"
}
]

위의 xml과 대조해서 보면 된다.
같은 데이터를 표현하는데 JSON의 용량이 압도적으로 적으며 파싱하기에도 편하다. 그래서 지금 Json을 더 많이 사용한다.

xml의 유일한 장점은 가독성이 좋다는 것이다.
그러다보니 현시점에서는 이런저런 설정파일이 XML로 많이 되어있다.

아까 xml과 비교해보면 훨씬 간결하다는 것을 알 수 있다.

그런데 마지막 객체가 아니라면 } 뒤에 , 가 붙어야 하는데 ResultSet 특성상 반복문을 돌리면 }가 마지막에 나오게 할수가 없다.

이렇게 boolean 변수 하나 만들어서 처음 거엔 , 안 찍히고 두번째 부터 값이 false로 바뀌면서 ,가 찍히고 마지막 거에선 반복이 끊기면서 ,가 찍히지 않는 방법을 이용하셨다.

이렇게 한글은 다 깨져서 나오는데 딱히 상관은 없지만 찝찝하다면

이 문장을 써주는데 이게 웹이 아니고 JSON이라고 표기해주는 것이라고 한다.

JSON view를 설치했다면 이렇게 나온다.

요청할 때 공개적으로 : 요청파라메터
요청할 때 비공개적으로 : 요청헤더 (api 키 같은 걸로 쓰임)

아마 이런식으로 키 값을 받고 검증 절차를 거칠 것이다.

그럼 회원가입 하고 로그인 한 사람들에게 줄 키값을 만드는 방법은 무엇일까?
그건 블록체인 배울 때 보자고 하신다.

eGovFramework
Spring Framework : Java쪽 유지보수 좋게 Java 쪽 최종테크
Maven : .jar 파일 중앙제어시스템 라이브러리 관리쪽 최종테크
MyBatis : Java + DB 연동 Java + DB 연동 관련 최종테크

 

https://www.egovframe.go.kr/
다운로드 - 개발환경 - 3.x 다운로드에서
접속해서 eGovFrameDev-3.9.0-64bit.exe 설치
그럼 간지나는 구동화면이 나온 다음 그냥 eclipse가 나온다.

이렇게 진행하고 패키지명은 com.회사명.프로젝트명 까지만 써주고 실행하면
Maven 시스템으로 .jar를 자동으로 다운 받아오는게 학원에서 단체로 하면 DDos가 되어버려 실패확률이 높다.

 

나는 오류 없이 잘 됬다.

여기 이 파일에 들어가서
23번줄쪽에 뭐 이것저것 해줘서 .jar 파일을 다운 받아오고 sql문으로 테이블을 생성해보면 이 3.9버전 자체적인 오류가 있어서 오류가 날 때도 있고 안 날 때도 있는데 이런 상황을 방지하기 위해서

워크스페이스 .metadata. plugins.org.eclipse.datatools.sqltools.result
지우고 켜야 문제가 해결된다.

빈 메모장에
rd /s /q "저 위의 경로를 넣음"
이렇게 써준 다음 xxx.bat로 파일을 만든 다음 이클립스 실행 전에 실행하라고 하셨다.