본문 바로가기
728x90
반응형
SMALL

백엔드23

네이버 금융페이지를 몽땅 가져와보자! - 코스피, 코스닥을 긁어오자! 안녕하세요!~ 오랜만입니다. ㅎㅎㅎ 저번 포스팅은 값들을 가져오는 환경과 데이터만 가져오는 방법으로만 구현했네요 이제 크롤링을 간단하게 해서 직접 자바의 자료구조 형태로 저장을 해보도록 해보겠습니다!!! 우선 해당 라이브러리 설치나 사용방법을 모르시는분은 아래 링크 통해서 진행해주신후 함께 진행하시면 더욱 부드럽게 진행하실 수 있으십니다! Jsoup 설치 방법 (자세히) https://uno-kim.tistory.com/213 [JAVA]Jsoup 라이브러리를 이용한 크롤링 - Jsoup 사용법 + 라이브러리 저장하는 법 안녕하세요~! ㅎㅎ 오늘 포스팅은 그동안 크롤링를 하여 네이버 금융의 정보를 가져왔었는데 크게 사용되었던 라이브러리인 Jsoup 라이브러리 사용법 에 대해서 알아보겠습니다! 1. 라이브.. 2022. 5. 3.
[Tomcat] java.library.path에서 발견되지 않습니다. 정보: 프로덕션 환경들에서 최적의 성능을 제공하는, APR 기반 Apache Tomcat Native 라이브러리가, 다음 java.library.path에서 발견되지 않습니다 톰캣서버를 재시작 또는 시작하는 경우 아래와 같은 오류가 나타나곤 합니다. 이 오류를 해결하기 위한 방법을 포스팅했습니다. 1. Server.xml 을 수정 첫번째 방법입니다 . 톰캣의 server.xml을 수정하는 방법입니다. 현재 저의 서버xml 의 화면입니다. 여기서 4번 라인의 의 부분을 주석처리 해준다. 그리고 톰캣을 재시작해주었습니다. 정상적으로 오류가 나타나지 않았습니다. 2. 톰캣 서버 clean 저의 경우는 1번 과정에서 해결되었습니다. 하지만 많은 확률로 톰캣 서버를 클린하고 프로젝트도 클린을 해주었더니 되었다는 정보도 있어서 작성했습니다. 2022. 2. 3.
[자바]java.lang.ClassNotFoundException: com.sun.mail.util.MailLogger-자바메일보낼때 오류 개인 프로젝트를 진행하는 도중에 아래와 같은 오류가 발생했습니다. 현재 메일을 보내는 기능을 구현하는 중이었습니다. 콘솔 오류를 보니 기능적이라던가 흔한 null 포인트, 권한, 또는 타입오류가아니라 클래스가 비어있다는 의미이며 그 클래스는 com/sun/mail/uitl/MailLogger 라는 클래스? 라이브러리가 비어있다는 것으로 스스로 해석했습니다. 물론 스스로 해석한다는것이 가장 무서운것이니 천천히 살펴보겠습니다. 제가 지금 의존성을 주입한 자바x 메일 api 입니다. 보면 콘솔창 오류의 경로 sum/mail/util와 제가 직접 라이브러리에 접근해서 열어본 경로가 서로 다릅니다. 그럼 다른 javax.mail. 에 대한 의존성을 주입해보겠습니다. https://mvnrepository.com/.. 2022. 1. 24.
TodoController에서 인증된 사용자 사용하기 지난 글들을 작성할때 , Todo 리스트에 대한 CRUD 기능을 구현할때 고정적인 아이디를 사용했습니다! 이땐 로그인 기능이 구현되지 않았어서 고정적으로 사용했었습니다. 그리고 이 기능을 아직도 사용하고있었습니다. 이제 이 메서드들이 인증된 사용자 아이디를 사용할 수 있도록 각 메서드에 userid라는 매개변수를 추가해줍시다! 우선 최초 url 매핑을 담당하는 SO부분을 수정시켜줍시다. @AuthenticationPrincipal String userId 해당 어노테이션을 이용해서 로그인되어있는 권한을 가져오는겁니다. 그리고 컨트롤러 오브젝트 단에서도 아이디를 매개변수로 받아서 해당 아이디로 셋팅하게됩니다. 그런데말입니다... userId는 도대체 누가 어떻게 String 인것을 알고 넘겨주는 걸까요? .. 2021. 12. 12.
JWT 를 이용한 인증 구현 2021.12.11 - JSON 웹 토큰 JSON 웹 토큰 서버에서 전자 서명된 토큰을 이용하면 인즈엥 따른 스케일 문제를 해결할 수 가 있습니다! 우리는 전자 서명된 토큰을 이용해 스케일 문제를 해결합니다.ㅎㅎ 그리고 이렇게 전자 서명된 토큰 uno-kim.tistory.com 구현을 위해 일단 JWT 관련 라이브러리를 디펜던시에 추가해야합니다.! implementation 'org.springframework.boot:spring-boot-starter-security' 빌드.그래들에 추가해줍시다! OncePerRequestFilter 라는 클래스를 상속해 필터를 생성해야합니다. 위 클래스는 한 요청당 한번만 실행됩니다. 따라서 한번만 인증하면 되는 우리에게 맞는 필터입니다! 위 클래스를 상속받는 J.. 2021. 12. 12.
JSON 웹 토큰 서버에서 전자 서명된 토큰을 이용하면 인즈엥 따른 스케일 문제를 해결할 수 가 있습니다! 우리는 전자 서명된 토큰을 이용해 스케일 문제를 해결합니다.ㅎㅎ 그리고 이렇게 전자 서명된 토큰 중 하나가 JSON 웹 토큰 입니다. 이것이 JWT라고 합니다. JWT는 오픈 스탠더드이고, JSON 형태로 된 토큰입니다. 토큰은 {header}.{payload}.{signature} 로 구성되어 있습니다. 각 파트의 필드가 무엇을 뜻할까요? Header typ : Type을 줄인 말로 토큰의 타입을 의미 alg : Algorith을 줄인 말로 토큰의 서명을 발행하는데 사용된 해시 알고리듬의 종류를 의미 Payload sub : Subject 를 줄인 말로 토큰의 주인을 의미, 애플리케이션에서는 사용자의 이메일이나 아.. 2021. 12. 11.
스프링 시큐리티 통합 -1 구현 내용 (시큐리티 통합 주제로) 1. JWT 인증 로직 구현 2. 패스워드 암호화 로직 구현 1. JWT 생성 및 반환 구현 사용자 정보를 바탕으로 헤더와 페이로드를 작성하고 전자 서명한 후 토큰을 리턴하도록 해야합니당 구현을 위해 JWT 관련 라이브러리를 디펜던시에 추가해야해요! build.gradle의 dependencies 부분에 jjwt 라이브러를 추가해줍시닷! // https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1' 이제 보안을 제대로 구현하기위해 security 패키지를 만듭시다!! 이 패키즈는 인증과 인가를 위한 .. 2021. 12. 8.
서비스 레이어 : 비즈니스 로직 서비스 레이어는 컨트롤러와 퍼시스턴스 사이에서 비즈니스 로직을 수행하는 역할을 한다. 서비스 레이어는 HTTP와 긴밀히 연관된 컨트롤러에서 분리되어 있고, 또느 데이터 베이스와 긴밀히 연관된 퍼시스턴스와도 분리되어 있다. 따라서 서비스 레이어에서는 우리가 개발하고자 하는 로직에 집중할 수 있다. TOdo 프로젝트를 위한 비즈니스 로직 구현을 위해 service페키지를 생성하고 그 아래에 TodoService를 만들어보자 package com.unoSpringBoot.study.service; import org.springframework.stereotype.Service; @Service public class TodoService { public String testService() { return .. 2021. 11. 24.
백엔드 서비스 아키텍처 말은 거창하게 서비스 아키텍처라고 사용하였다. Model/Entitt와 DTO클래스 Controller, Service, Persistence 클래스 테스팅용 REST API 에 대해 실습을 하면서 설명은 설명을 위주로하는 카테고리에서 하도록 하겠다. 오 프로젝트에서는 모델과 엔티티를 한 클래스에 구현한다. 따라서 모델은 비즈니스 데이터를 담는 역할과 데이터베이스의 테이블과 스키마를 표현하는 두 역할을 한다. 큰 애플리 케이션의 경우 모델과 엔티티를 따로 구현하지만 우리는 규모가 작으므로 합쳐서 구현하는 것이다. 이 모델/엔티티의 이름은 TodoEntity이고, Todo리스트의 한 아이템에 해당한다. TodoEntity를 작성하기에 앞서 model 패키지 com.unoSpringBoot.study.mod.. 2021. 11. 22.
프로젝트(2) AJax와 스프링 시큐리티 처리 태그를 이용하는 방식 외에 많이 사용되는 Ajax를 이용하는 경우 약간의 추가적인 설정이 필요하다. 해당 Ajax부분을 로그인한 사용자만이 해당 기능들을 사용할 수 있도록 수정해주어야 한다. 스프링 시큐리티가 적용되면 POST, PUT, PATCH, DELETE와 같은 방식으로 데이터를 전송하는 경우 추가적으로 X-CSRF-TOKEN와 같은 헤더 정보를 추가해서 CSRF토큰값을 전달하도록 수정해야한다. Ajax는 JS를 이용하기 때문에 브라우저에서는 CSRF토큰과 관련된 값을 변수로 선언하고, 전송 시 포함 시켜주는 방식으로 수정하자. 게시물등록 시 첨부파일의 처리 스프링 시큐리티가 적용된 후에는 게시물에 파일첨부가 정상적으로 동작하지 않는다. 게시물의 등록이 POST로 .. 2021. 10. 21.
프로젝트(1) 기존 프로젝트에 그동안 공부했던 스프링 시큐리티를 접목하는 작업을 진행하도록 하겠다. 그전에 해당 기능은 -로그인과 회원 가입 페이지의 작성 - 기존 화면과 컨트롤러에 시큐리티 관련 내용 추가 - Ajax부분의 변경 로그인 페이지 처리 기존의 로그인화면은 정말 끔찍하다.. 어쩌면 스프링에서 기본으로 주는화면급이었다. 똑같았다 그냥 그럼 조금 이쁘게 부트스트랩을 적용하고, 아까의 로그인의 화면의 태그라던가 id는 동일하게 설정한뒤 생성해보았다. Please Sign In Remember Me Login 폼태그가 붙고, 거기에 컨테이너 div가 붙고 해서 뭔가 복잡해 보이는데 화면으로보면 크게 달라진것은 없다. 귀찮다면 그전의 화면을 계속사용해도 문제는 없다. 하지만 JSTL이나 스프링 시큐리티의 태그를 사.. 2021. 10. 21.
자동 로그인 현재 웹페이지들은 자동 로그인이나 로그인 기억하기 라는 이름으로 한 번 로그인하면 읠정 시간 동안 다시 로그인을 하지 않아도 되는 기능을 가지고 있다. 스프링 시큐리티의 경우 로그인기억 기능을 메모리상에서나 처리하거나, 데이터베이스를 이용하는 형태로 약간의 설정만으로 구현이 가능하다. security-context.xml에는 태그를 이용해서 기능을 구현할 수 있다.! 해당 태그에는 아래와 같이 여러 속성값을 지정할 수 있다. key 쿠키에 사용되는 값을 암호화하기 위한(key)값 data-source-ref DataSource를 지정하고 테이블을 이용해서 기존 로그인 정보를 기록(옵션) remember-me-cookie 브라우저에 보관되는 쿠키의 이름을 지정한다. 기본값은 remember-me이다. re.. 2021. 10. 21.
728x90
반응형
LIST