오늘은 java 마지막 XML/JSON 파싱에 대해서 학습! 뭔지 하나도 모르지만 열심히 공부해봅시당 😂😂
호환성!
CSV comma separated value 콤마로 분류
XML Extensible markup language 태그로 분류
Json Javascript object notation json으로 분류
SAX, DOM 은 모두 Factory 패턴
XML 파싱!
Simple API for XML
빠르고 한번에 처리하기 때문에 다양한 탐색이 어렵다.
정보를 저장하기 위한 클래스 : DTO (캡슐화)
DTO vs VO
DTO (Data Transfer Object)
목적: 단순히 계층 간 데이터 교환 및 전송하기 위해 사용하며 비즈니스 로직이 없음
유연성! 변경가능!
VO (Value Object)
목적: 주로 도에인 모델의 값 자체를 표현하기 위해서 사용하며 필요에 따라 비즈니스 로직 포함
불변성! 동등성!
vs record
데이터를 보관하는데 사용되는 불변 객체를 간단하고 명료하게 정의 가능
DTO 또는 VO를 구현할 때 유용(DTO도 불변 객체로 사용하는 것을 권장)
불변성! 간결성!
문서를 완전히 메모리에 로딩 후 필요한 내용 찾기
다양한 탐색이 가능하지만 느리고 무거우며 큰 문서를 처리하기 어렵다.
DOM Tree
문서를 구성하는 모든 요소를 Node(태그, 속성, 값)로 구성
태그들은 root 노드(주소록)을 시작으로 부모-자식의 관계 구성
트리느낌으로 루트노드부터 탐색!
Javascript Object Notationd (자바스크립트 객체 표현법)
객체를 key-value 쌍으로 관리
List<Map<String,Object>> boxOfficeList =
(List)result.get("boxOfficeResult").get("dailyBoxOfficeList");
🔔 Factory Pattern
🔔 이터레이터 패턴 터미네이터 친구
🔔 한번만 생성해야지 요청을 하나로 모아서 해야지 -> 싱글톤 패턴
🔔 여러개를 준비했는데 필요할 때 해야하지 다형성 사용하는 거 -> 팩토리 패턴
🔔 뷸더 패턴
🚨 패턴 이 4가지 학습하기 이터레이터 싱글톤 팩토리 뷸더
🔔 스택은 안터짐 한칸에 4바이드 1인트
🔔 알고리즘에서는 static을 힙이라고 생각
🔔 이든과 헬로 가면 삭제 이런 메모리 관리는 Object가 한다 Object는 최상위 클래스 모든 객체가 오브젝트 상속 받아서 메모리 정리 자동으로 다 됨
🔔 웹에 좋은데 html 데이터 관리에 좋은건 xml
🔔 xml 파싱 DOM SAX .Factory .builder 패턴이라 new 아님
🔔 dto 패턴 그냥 겟셋겟셋 vo는 거의 get만 되어있고
🔔 Event Driven SAX 이벤트 있을 때 마다 태그를 만날 때 마다
🔔 adapter pattern SAX 가 12개메서스 있는 인터페이스 implements 하는데 5개밖에 안씀
🔔 그래서 인터페이스에 다 default 로 만들어놔서 다 구현 안해도 되게 만들어놨음 이게
🔔 어댑터 패턴이다.
🔔 거리를 구할 때 좌표에서 배열거리나 맨해튼 거리 공식을 사용하여 훨씬 쉽게 풀 수 있음!
🔔 플루드필 -> 치즈 문제 닿는 면 arraycopy 활용해서 2차원 배열 깊은 복사
🔔 깊은 복사한 곳에 바깥 공기 bfs or dfs로 2로 만든다
🔔 치즈 풀면 크레용팝
🔔 nextperm 방법
🔔 1. 첫 봉우리 찾는다 오른쪽 부터
🔔 왼쯩오감 비트 연산자
🔔 or | 방문한 도시에 포함시켜라 1001 해밀턴 회로
🔔
nextPermutation 13까지 안터짐 ㄷㄷ
알고리즘 학습법
PermTest 코드 짜서
PermTest2 (중복 순열)
CombiTest (조합)
CombiTest2 (중복 조합)
SubsetTest (부분 정렬)
PermTest3 (비트Perm)
Nextperm 까지 짜기 (nPr 최적화)
bfs 홍수 치즈 MAZE
dfs 까지 이해가 완료 되었다면 리쌍의 개리멘더링 지역구 나누기
dfs bfs
맨해튼공식
치즈
치즈2
bfs 심화 파핑파핑
뿌요뿌요
다익스트라
요리사
게리맨더링
알고리즘 정리 어케 할지 생각하기
알고리즘 공부 하자!