Web

    Node.js를 이용한 크롤링

    Node.js를 이용한 크롤링

    사담 저는 스파르타 코딩클럽 node.js 강의를 들으면서 간단한 쇼핑몰 웹을 구축하던 중 파이썬이 아닌 node.js를 이용해서도 크롤링을 할 수 있다는 것을 알게되어 진행해보면서 기록하기위해 글을 적게 되었습니다. 필요한 패키지 설치 1. Node.js 서버에서 외부의 웹브라우저에 요청해서 특정 HTML을 내려받기 위해 필요한 패키지 => axios 2. 가져온 HTML에서 특정 위치(depth)를 가져오기 위해 필요한 패키지 => cheerio 3. 사이트에서 한글을 가져오면, 발생하는 문제(인코딩 문제 등..)를 해결하기 위해 필요한 패키지 => iconv-lite => npm install axios cheerio iconv-lite -s 설치하고 나면, package.json에 설치가 된 걸 ..

    [Spring Boot 프로젝트] 1. 프로젝트 생성과 Boot Strap 템플릿 적용(Thymeleaf)

    [Spring Boot 프로젝트] 1. 프로젝트 생성과 Boot Strap 템플릿 적용(Thymeleaf)

    Spring Boot로 프로젝트를 생성하고, Thymeleaf 를 이용하여 부트스트랩 템플릿을 적용해보도록 하겠습니다. SpringBoot 프로젝트 생성 여기에 접속하면 쉽게 생성 가능합니다. 개발 환경 Gradle Java Spring Boot 버전 : 2.5.5 Java 11 Packaging : Jar 의존성 추가 : Spring Web, Thymeleaf, Spring Boot DevTools, Spring Data JPA, Lombok 위의 설정으로 다운을 받고, 알집을 풀고나서 IntelliJ에서 Open Project를 클릭합니다. gradle로 설정했다면, 아래와 같이 build.gradle파일을 클릭하여 프로젝트를 열어 Build합니다. Bootstrap 연동 0. 의존성 추가 만약, (..

    ORM(Object Relational Mapping)과 JPA(Java Persistence API)

    ORM(Object Relational Mapping)과 JPA(Java Persistence API)

    이번 포스팅에서는 ORM과 JPA에 대한 이론적 개념 위주로 작성하겠습니다. 목차 ORM이란? ORM 장점 ORM 단점 (JPA 단점으로도 볼 수 있겠습니다.) JPA란? Hibernate SpringData JPA ORM(Object-Relational Mapping)이란? 우선 ORM이 왜 등장했는지 알아보겠습니다. 기존에는 애플리케이션을 개발할 때 많은 CRUD용 SQL을 반복해서 작성해야 했습니다. 객체 모델링을 SQL로 풀어내는 데 너무 많은 코드와 노력이 필요했고, 객체 모델은 점점 데이터 중심의 모델로 변해갔습니다. 그래서 이러한 비효율적인 작업을 개선하기 위해 ORM이 등장합니다. 어플리케이션의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 의미합니다. 즉, 연관된 Java..

    [Spring Boot] 프로젝트 세팅부터 REST API까지

    [Spring Boot] 프로젝트 세팅부터 REST API까지

    Sparta에서 2주차까지 수업을 듣고나니 여태까지 배운 것을 스스로 해보는 숙제가 주어졌다. 숙제를 진행하면서 기억해놓고 싶은 것들✨을 적어보았다. 0. 프로젝트 Setting 🔥 Spring boot 프로젝트 Setting을 진행한다. SpringBoot페이지에서 아래와 같이 프로젝트 셋팅을 진행하였다. 다운로드받은 후, 알집을 풀어준다. 그후, IDE(본인은 IntelliJ)에서 새 프로젝트 생성 버튼을 클릭하여, (Gradle Project인 경우) build.gradle 파일 선택 후 open as project로 열면 프로젝트가 잘 셋팅된다. 1. 디렉토리 구조 🔥 필요한 폴더는 총 Domain, Service, Controller 이다. 📁 domain └ Person 클래스 └ Person..

    동기/비동기(Sync/Async), Blocking/Non-Blocking

    시작하기에 앞서, 간단히 기준이 되는 용어를 보겠습니다. Blocking/Non-Blocking : '제어권'을 두고 구분 동기/비동기 : 결과값을 기다리느냐로 구분 1. Blocking VS Non-Blocking : 제어의 관점 요청한 처리되어야하는 작업이 전체 작업 흐름을 막는지 안 막는지? 🚩 Blocking 작업에 대한 제어권이 없다. 즉, 다른 주체에게 작업을 요청하면 결과가 돌아올 때까지 다른 작업을 하지않고 기다려야 한다. A함수가 B함수를 호출하면, 제어권을 B함수에게 넘긴다. B함수가 자신의 함수를 실행하고, A함수는 제어권이 없기 때문에 함수 실행을 잠시 멈춘다. B함수의 실행이 끝나면 자신의 제어권을 호출한 A에게 돌려준다. 🚩 Non-Blocking 작업에 대한 제어권을 그대로 가..

    html의 유용한 기능

    이번 글에서는 어느정도 알고있으면 편한 (은근 자주 쓰이는데 익히지 못해 매번 알아보기 귀찮은) (혹은 이렇게 쓰이는거였군! 싶은) 정보들 위주로 적어보려고합니다. 어디까지나 저의 입장에서 적은 정보들입니다. 태그 브라우저에게 정보를 주는 부분이 태그인데요, • 웹 브라우저 화면에는 보이지 않지만, 웹 브라우저가 알아두어야 할 정보들 입력 • 문서에서 사용할 외부 파일들 링크 들을 포함하고 있습니다. 즉, 웹 브라우저에는 보이지 않지만, 웹브라우저가 웹문서를 해석하기위해 필요한 정보들을 입력하는 공간입니다. 보통 태그와 태그가 있습니다. 태그 : 문자 인코딩 방법 및 문서의 키워드와 요약 정보를 지정 참고로! 태그와 내용을 포함한 전체 문자열 ex) 제목 을 HTML의 기본 구성단위, 엘리먼트 (elem..