Language 61

크롤링이란?

크롤링이란? 인터넷에서 데이터가 방대해지면서 우리는 그걸 활용할 필요성이 높아졌다. 이런 정보들을 우리가 분석하기 쉽고 활용하기 편하게 데이터를 수집하는 행위를 크롤링(Crawling) 이라고 하고 크롤링하는 프로그램을 크롤러(Crawler)라고 한다. 원하는 데이터를 추출하는 스크래핑(Scraping)과 개념이 혼동되기도하는데 크롤링의 정확한 정의는 다양한 웹사이트의 페이즈를 브라우징하는 작업을 말한다. 그런데 사실상 정보를 수집하기 위해선 브라우징만 하는건 쉽지가 않다. 페이지 안에 있는 데이터를 추출해 가공하는게 대부분 최종 목표이기도 하다. 크롤링의 원리 웹페지는 HTML 문서로 작성되어 있다. 그리고 이 문서에는 인터페이스를 참조할 수 있는 CSS파일과 페이지 상호작용을 위한 JavaScript..

Language/JS 2024.04.13

[자바스크립트] createElement() , setAttribute() 동적요소 및 요소 속성 설정 하는방법

document.createElement() 이란? document.createElement() 메소드는 지정한 tagName의 HTML 요소를 만들어 반환합니다. createElement를 통해 페이지 로딩시점에는 없었던 요소를 원하는 시점에 동적으로 만들어서 삽입 할 수 있습니다. 삽입은 .append()를 통해서 합니다. let element = document.createElement(tagName [options]); tagName: 생성할 요소의 유형을 가리키는 문자열 option: is속성을 가진 ElementCreationOptions 객체 활용 예시 let div = document.createElement("p"); 이러면 html에 없던 p 태그가 로딩 시점에 동적으로 나오는 현상을 ..

Language/JS 2023.12.17

웹 스토리지 (localStorage, sessionStroage)

자신만의 달력을 만들어서 간단한 메모를 할수 있도록 하면 한다면 이럴떄 보통 데이터베이스(DB) 서버나 클라우드 (Cloud) 플랫폼에 데이터를 저장하는 경우가 많습니다. 하지만 중요하지 않거나 잃어버려도 되는 데이터라면 서버단에 데이터를 저장하는 것이 낭비일수가 있고 설정하고 관리하는것도 힘들수가 있스빈다. 이럴 때 클라이언트 단, 즉 브라우저 상에 데이터를 저장할 수 있느 기술인 웹 스토리지를 사용합니다. 로컬 스토리지 VS 세션 스토리지 웹 스토리지(Web Stroage)에는 로컬 스토리지(local Storage)와 세션 스토리지 (session Stroage)가 있습니다. 이 두 개의 매커니즘의 차이점은 데이터가 어떤 범위 내에서 얼마나 오래 보존하냐에 있습니다. 세션 스토리지는 웹페이지의 세션..

Language/JS 2023.12.17

[JPA] 값 타입, 임베디드 타입

JPA의 데이터 타입 분류 1. 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적이 가능하다 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 2. 값 타입 int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 3. 기본값 타입 자바 기본 타입 (int , double) 래퍼 클래스 (integer, Long) String 임베디드 타입 (embedded type, 복합 값 타입) 컬렉션 값 타입 (Conllection value type) 참고 : 자바의 기본 타입은 절대 공유되지 않는다 int a = 20; i..

Language/Java 2022.11.22

프록시와 연관관계 관계

프록시란? 대리자라는 뜻으로, 클라이언트가 사용하려고 하는데 실제 대상인 것처럼 위장해서 클라이언트의 요청을 받아주는 역할을 말한다. 프록시는 실제 대사인 것처럼 위장함으로서 이를 사용하는 클라이언트는 구체 클래스를 알 필요가 없어진다. 또한 프록시 클라이언트의 요청을 받아서 원래 요청 대상에게 바로 넘겨주는 게 아닌, 다양한 부가기능을 지원할 수 있다. 여기서 원래 요청하려는 대상 즉, 최정적으로 요청을 위임받아 처리하는 실제 오브젝트를 타깃 이라한다. 프록시의 조건 클라이언트의 요청을 대리로 수행해주는 모든 객체가 프록시 인것은 아니다. 객체가 프록시가 되려면 클라이언트는 요청을 보낸 대상이 타깃인지 프록시 인지 구분을 할 수 없어야한다. 즉, 타깃과 프록시는 같은 인터페이스를 확장해야한다. (CGL..

Language/Java 2022.11.16

Eclipse Svn 설치

어제는 Eclipse에 Azure 설치를 해보았는데 오늘은 Svn를 설치해보도록 할것이다 https://jungkeung.tistory.com/213 Install New Software -> Work with http://community.polarion.com/projects/subversive/download/eclipse/6.0/update-site/ 작성 -> Name : Svn 작성 후 Add 클릭 -> Name 밑에 있는 Svn 두개다 체크 후 Next 눌러준 2. 라이선스 확인 후 Filnsh -> Restart 클릭하면 끝이다. 자세한 내용은 아래 블로그를 참고 해서 하면 좋을거 같다 http://lmc.cs.kookmin.ac.kr/readmore/eclipse-svn

Language/Java 2022.10.28

Eclipse에 Azure 설치 하기

Eclipse마다 Java를 지원해주는 최소의 버진이 있다. Eclipse 4.17 이후로부터는 최소 Java 11 버전을 이용해야 하며 Java 8 이전 버전을 사용하려면 Eclipse 4.16 이전 버전을 사용해야 한다. 나는 4.24 버전이 java 1.8을 지원해주는 줄 알고 계속 구글링을 해보면서 시간을 날렸다.. 아래의 사이트는 Eclipse을 다운로드할 수 있으며 최신 버전부터 이전 버전까지 다운로드가 가능하다 https://www.eclipse.org/downloads/packages/release Eclipse에 Azure 설치 전에 https://learn.microsoft.com/ko-kr/azure/developer/java/fundamentals/java-support-on-azu..

Language/Java 2022.10.27

엔티티의 생명주기

엔티티는 4단계의 생명 주기 비영속 (new/transient) 영속 (managed) 준영속 (datached) 삭제 (removed) 영속성 관리 비영속 (new/transient) 비영속 상태는 객체를 새로 생성한 상태이다. JPA와 전혀 관계없이 객체만 생성한 상태이다. Member member = new Member(1L,"test"); //member는 비영속 상태 영속 상태가 아니므로 당연히 영속성 컨텍스트에 의해 관리되지 않으며, 1차 캐시, 변경감지등의 기능이 적용되지 않는다. 영속 (managed) 영속성 컨텍스트에 의해서 관리되어지는 상태이다. 생성한 객체를 em.persist()를 통해 영속성 컨텍스트에 저장하거나, 혹은 em.find()를 통해 DB에서 엔티티를 조회하면 영속성 컨..

Language/Java 2022.10.10

긴 매개변수 목록

어떤 함수에 매개변수가 많을수록 함수의 역할을 이해하기 어려워진다 그 함수는 한가지 일을 하고 있는게 맞는가? 불필요한 매개변수는 없는가? 하나의 레코드를 뭉칠 수 있는 매개변수 목록은 없는가? 어떤 매개변수를 다른 매개변수를 통해 알아낼 수 있다면, “매개변수를 질의 함수로 바꾸기”를 사용할 수 있다 기존 자료구조에서 세부적인 데이터를 가져와서 여러 매개변수로 넘기는 대신,”객체 통째로 넘기기”를 사용할 수 있다 일부 매개변수들이 대부분 같이 넘겨진다면, “매개변수 객체 만들기”를 적용할 수 있다 매개변수가 플래그로 사용된다면, “플래그 인수 제거하기”를 사용할 수 있다 여러 함수가 일부 매개변수를 공통적으로 사용한다면 “여러 함수를 클래스 묶기”를 통해매개변수를 해당 클래스의 필드로 만들고 매서드에 ..

Language/Java 2022.08.15