스프링 프레임워크 구조와 동작 원리를 이해합니다.
스프링 MVC의 요청 처리 흐름, 의존성 관리, 객체 생성과 관리 방식을 학습하고 최적화된 애플리케이션 구조를 설계하고자합니다. 또한, 레이어드 아키텍처에 따라 역할을 분명히 구분하여 책임 있는 코드를 작성하는 방법을 학습합니다. 이와 함께, 구성 파일과 ORM과 JPA에 대한 이해를 통해 기본적인 스프링 구조의 학습 난이도를 낮추는 것을 목표로 합니다.
<aside> 💡 목차
</aside>
<aside> 💡
JSON(JavaScript Object Notation)
: Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷
→ 웹 애플리케이션에서 데이터 전송 시 일반적으로 사용
</aside>
☑️ 다양한 타입을 데이터 값으로 사용 가능
타입 | 값 |
---|---|
숫자(number) | 1 |
문자열(string) | "str” |
불린(boolean) | true |
객체(object) | {inKey : inValue} |
배열(array) | [”하나”, “둘”] |
널(NULL) | null |
☑️ 객체와 문자열의 변환
파싱(Parsing)
문자열에서 네이티브 객체로 변환하는 것
예시 코드
var json = {"test" : "value"}
var incodingData = JSON.stringify(json);
// console.log(incodingData);
문자열화(Stringification)
네트워크를 통해 전달할 수 있게 객체를 문자열로 변환하는 것
예시 코드
var str = '{"test" : "value"}';
var parsingData = JSON.parse(str);
// console.log(parsingData);
→ 위와 같이 작은 따옴표로 묶은 문자열이 JSON 형식이어야 오류가 발생하지 않는다! (var str = "k : v"
사용 시 오류 발생)
☑️ 주의사항
☑️ 애플리케이션의 정보 및 데이터 부분
☑️ Controller에게 받은 데이터를 조작(가공)하는 역할을 수행함.
→ 데이터와 관련된 부분을 담당하며 값과 기능을 가지는 객체!
<aside> 🚨
사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
→ 네모박스에 글자가 표현된다면, 네모박스의 위치 정보, 크기 정보, 글자 내용, 위치, 포맷 정보 등을 모두 가져야 한다!
View나 Controller에 대해서 어떤 정보도 알지 말아야 한다.
→ 데이터 변경이 일어났을 때 Mode이 화면 UI를 직접 조정해서 수정할 수 있도록 뷰를 참조하는 내부 속성 값을 가지면 안 된다!
변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야만 한다.
→ 정보가 변경되면 이벤트를 발생시켜 누군가에게 전달해야 하며, Model을 변경하도록 요청하는 이벤트를 수신할 수 있는 처리 방법을 구현해야 한다!
→ Model은 재사용이 가능해야 하며, 다른 인터페이스에서도 변하지 않아야 한다!
</aside>