JAVA : Stream 개념
JAVA 2023. 1. 11. 01:02

JAVA의 스트림 Stream 수많은 데이터의 흐름 속에서 각각의 원하는 값을 가공하여 최종 소비자에게 제공 - 바다에서 그물로 물고기만 걸러서 잡기 → filter : 중간 연산자 - 일정한 기준으로 상자에 물고기를 넣기 → map : 중간 연산자 - 물고기가 담긴 상자를 운반하여 트럭에 전달 → collect : 최종 연산자 필요성 For문 또는 Iterator를 통해 컬렉션이나 배열 데이터를 처리하는 코드는 길고 알아보기 어렵다. List, Set, Map 등 다양한 데이터 소스(컬렉션, 배열 등)의 사용 방식이 달라 재사용성이 떨어진다. → 표준화된 방법 필요 👉🏻 이러한 문제점을 해결할 수 있는 Stream이 등장!! (Java8부터 지원) 특징 데이터 컬렉션 반복을 멋지게 처리 → 컬렉션(배열..

Array vs Arraylist
자료구조 2023. 1. 10. 15:45

공통점 메모리상에 연달아 공간을 확보 index로 접근 가능 요소를 추가하거나, 가져올 때 성능 비슷 → ArrayList가 크키 조절이 필요할 때 성능 차이 발생!! 중복되는 요소 저장 가능 Null 값 저장 가능 차이점 Array는 고정 길이이고 Arraylist는 가변 길이이다. 내부적으로 default size 10인 배열으로 구성 → 최적화로 인해 막 생성하면 사이즈 0 편리함의 대가로 array보다 살짝 느림 → 코딩테스트에서는 array를 사용하는 것이 낫다! ArrayList는 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해서 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음에 저장 새로운 배열의 크기는 기존 배열보다 1.5배 크다. Array는 primitive type..

LinkedList : 링크드 리스트
자료구조 2023. 1. 9. 11:07

링크드 리스트 : 노드로 구성된 자료구조 배열 또는 선형 리스트는 👍🏻 기본적인 자료구조 형태로 데이터를 빠른 시간 안에 조회할 수 있는 장점이 있습니다. 👎🏻 하지만, 데이터 추가/삭제 작업 후에 순서를 유지시키기 위해 데이터를 이동하는 추가적인 작업과 시간이 필요합니다. 👎🏻 또한, 크기를 변경할 수 없어 실행 속도 향상을 위해 충분히 큰 배열을 생성할 때 메모리가 낭비됩니다. 👉🏻 이러한 단점을 보완한 자료구조가 링크드 리스트 입니다. 링크드 리스트는 불연속적으로 존재하는 데이터를 서로 연결한 형태로 구성되어 있습니다. 특징 - 링크드 리스트의 원소는 원소값 필드와 다음 원소의 주소값 필드로 구성되어 있다. - 물리적으로 데이터가 연결되어 있지 않지만, 다음 원소의 주소값을 통해 연결되어 논리적으로..

JPA 영속성 컨텍스트
WEB/JPA 2022. 10. 3. 14:51

영속성 컨텍스트 란? - entity를 영구 저장하는 환경 - JPA를 이해하기 위해 중요한 용어 - entityManager를 통해서 영속성 컨텍스트에 접근 > 쉽게 entityManager 안에 영속성 컨텍스트라는 눈에 보이지 않는 공간이 생긴다고 이해! EntityManager.persist(entity); // entity(객체)를 영속성 컨텍스트라는 공간에 저장! 엔티티의 생명 주기 - 비영속 (new/transient) : 영속성 컨텍스트에 추가되지 않은! 관계가 없는 새로운 상태 -> 새로운 객체 생성 때 상태 - 영속 (managed) : 영속성 컨텍스트에 관리되는 상태 - 준영속 (detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 > 영속성 컨텍스트가 제공하는 기능을 사용 ..

Open API에서 공휴일 날짜 파싱 (JSON)
WEB/Spring 2022. 6. 13. 02:11

- open api 사용 방법 - 공공데이터 오픈 API 사용하기(휴일 정보 - 한국천문연구원_특일 정보) 공휴일 정보를 불러오기 위해 공공데이터인 한국천문연구원_특일 정보 open API를 사용했다. https://www.data.go.kr/index.do 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제 study-ce.tistory.com Open API로 휴일 정보를 가져왔다. 그런데, 만들고자 하는 API에서는 휴일 날짜만 필요했다. 즉, json객체에서 locdate라는 이름의 값만 필요했다. 그래서 json 객체의 이름을 이용해서 값을 추출했다. open API에서 특정 연도 공휴일 날짜를 출력하는 Spring Boot Controller이다. import java.io..

공공데이터 오픈 API 사용하기(휴일 정보 - 한국천문연구원_특일 정보)
WEB/Spring 2022. 6. 13. 01:42

공휴일 정보를 불러오기 위해 공공데이터인 한국천문연구원_특일 정보 open API를 사용했다. https://www.data.go.kr/index.do 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr 활용신청을 클릭하고 사유를 입력하면 바로 사용이 가능하다!! ( 로그인 필요 ) ▼ 위 이미지에서 사용할 API를 클릭하면 상세 정보를 확인할 수 있다. 해당 페이지에서 url에 필요한 인증키를 확인할 수 있다. 아래의 API 상세 페이지에서 api를 호출하는 sample 코드를 제공하고 있어서 이를 활용했다. 한국천문연..

Spring: log4j.xml 에러
WEB/Spring 2022. 3. 27. 20:00

웹 코딩하다가 갑자기 건들지 않은 log4j.xml에 에러가 생겼다.. 전체 페이지로 보면 빨간줄이 많았는데, 다행히 첫번째 에러를 해결하니 다른 빨간줄은 사라졌다! 에러 : Cannot find DTD ... DTD 파일 = XML의 문법을 정리해놓은 파일 XML은 DTD파일을 먼저 확인하여 문법을 확인한다. 간혹, 이클립스에서 log4j.xml의 DTD파일을 확인하지 못해 에러를 표시하는 경우가 있다고 한다. 그때 DTD 선언문인 에러가 발생한 줄의 코드를 지우고 아래의 코드로 변경하면, DTD 파일의 경로를 웹의 절대경로로 변경하여 해결할 수 있다. 2번째 줄이 수정한 부분이다. 참고 사이트 https://m.blog.naver.com/jjk003/222129914141

Spring: root-context.xml 에러
WEB/Spring 2022. 3. 27. 10:10

Spring의 root-context.xml을 수정하다가 context:component-scan 태그에 오류가 발생했다. ① 첫 번째 에러 The prefix "context" for element "context:component-scan" is not bound. : beans의 xmlns 선언 부분에 context에 대한 부분이 없어서 발생하는 에러이다. 아래와 같이 xmlns:context="http://www.springframework.org/schema/context" 를 추가해주면 해결된다! 그렇지만, 새로운 에러 메세지가 생겼다! ② 두 번째 에러 cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration ca..