fkdltmxlr3의 등록된 링크

키자드에 등록된 총 217개의 포스트를 확인하실 수 있습니다.

Naver Blog

SpringFramework - WebSocket으로 JSON 데이터 주고받기

짧게 어떻게 Class를 JSON 데이터의 형태로 Websocket에서 주고받을 수 있는지 서술한다.ObjectMapper.writeValueAsString 메소드 : 클래스에 있는 데이터들을 JSON 형태의 String으로 만들 어서 보낼 수 있다.( 여기서 roomMessage 는 제가 만든 클래스입니다. )현재 roomMessage 클래스에는 roomType, roomName, roomMaxUser 의 속성만 값이 들어있다.JSON.parse : webSocket에서 온 JSON의 데이터를 각각의 데이터타입으로 분해해준다.콘솔의 로그를 확인해보면 다음과 같다.

Naver Blog

SpringMVC - 웹 크롤링

Spring 에서는 jsoup 이라는 HTML Parser 를 지원한다.# Jsoupjava 로 만들어진 오픈소스 HTML Parser로, HTML 을 다루는데 사용한다.URL 을 소스로 HTML을 파싱할 수 있다. DOM 구조를 추적하고 데이터를 찾아 추출할 수 있다.간단한 예제를 구현해보자.1. pom.xml에 jsoup 의존성을 추가한다.2. Client 로부터 URL 을 입력받을 간단한 폼을 만든다. (굳이 안만들고 컨트롤러 같은 곳에서 해결해도 됨.)이 네이버 날씨를 크롤링 해보도록 하겠다.개발자 도구에서 저 버튼을 누르고 저 카드부분을 클릭하면, 이렇게 어떤 div 에 해당하고있는지가 뜬다.그러면 card card_today class에 해당하는 것을 확인할 수 있다.그리고 그.......

Naver Blog

면접 공부 - Java

자바의 실행 순서자바와 같은 고급 언어로 소스코드를 작성하면 , 자바 컴파일러는 각 소스 파일을 컴파일하여 Class 파일을 생성한 후 JVM이 클래스 파일을 로딩한 후 실행한다.< 자바는 각 파일을 하나의 실행 파일(.exe)로 뭉치는 링크의 과정이 없다. >컴파일 ? 컴파일러 ?컴파일러: 고급 언어로 작성된 프로그램은 컴퓨터가 직접 처리할 수 없기 때문에 컴퓨터가 실행할 수 있는 기계어 코드로 변환하는 소프트웨어WORA = Write Once Run Anywhere한 번만 작성하면 어디서든 실행할 수 있다는 의미로,자바는 플랫폼에 독립적으로 설계되어서 운영체제&하드웨어와 상관 없이 JVM만 있으면 어디서나 실행이 가능하다........

Naver Blog

Java - Class 의 특정 값으로 ArrayList 정렬하기

코로나 사이트를 크롤링 하는데 오늘 확진자 순으로 정렬을 하고싶어서 음 어떻게할까 고민하다가 찾았다.java.util.Comparator Interface의 compare 메소드를 오버라이딩하여 해결할 수 있었다.리스트에는 이런식으로 CityInfo 라는 내가 만든 클래스가 들어간다.CityInfo 클래스의 형태는 다음과 같고 todayTotal 이라는 속성으로 내림차순(큰수부터 위에보이게) 정렬하고싶었다!ListComrator 라는 클래스를 하나 만들고, Comparator 인터페이스를 상속받는다.Comparator Interface의 compare 메소드를 오버라이딩하는데,CityInfo의 todayTotal 값을 가져와서 비교한다.내림차순 하려면 변수1이 클 때 -1을 return 하면 되고 오름차.......

Naver Blog

SpringFramework - 로그 설정 (log4j)

지식 출처 : https://to-dy.tistory.com/20 - Log4j 정의 : log for java로그의 대상을 다양하게 설정할 수 있도록 도와주는 도구이다.보통은 콘솔에 출력하고, 특정 파일에 로그를 남길 수도 있다 - log4j의 구조1. Appender로그의 출력위치를 결정한다. ( 콘솔, 파일 등 )2. Logger로깅 메세지를 Appender에 출력한다.3. LayoutAppender 가 정한 위치에 어떠한 형식으로 출력할 것인지 결정한다.글로만 보면 어려우니 예제를 확인해보자.appender, layout, logger를 각각 확인할 수 있다.첫 번째로 보이는 Logger를 해석해보자면,com.my.myBoard 패키지에서 로깅 메시지가왔을 때 log 레벨이 info이상이라면 로깅메세지를 Ap.......

Naver Blog

[ 팝송 공부 / 추천 / 해석 ]Lauv - Never Not

https://www.youtube.com/watch?v=VT_hLby9uSY라우브 - Never Not공부하기 싫어서 이것저것 보다가 우연히 들었는데 매우 절절하고 좋다.전 애인을 생각하며 쓴 가사같은데 가사가 매우 좋다 매우 슬프다!We were so beautiful우린 아주 아름다웠지We were so targic우린 아주 비극적이었어No other magic could ever compare그 어떤 마법과도 비교할 수 없었어Lost myself, seventeen열일곱살에 날 잃었었지Then you came, found me너가 오고나서, 나를 찾았었지No other magic could ever compare그 어떤 마법과도 비교할 수 없었어There's a room In my heart with the memories we made내 가슴속에 우리가 만.......

Naver Blog

SpringFramework - Servlet

지식 출처 :https://www.youtube.com/watch?v=cmwmamOQmPc# Servlet: 클라이언트의 요청을 처리하기 위해 HTML등의 웹 컨텐츠를 생성하고 그 결과를 다시 반환하기 위해 Servlet 클래스의 구현 규칙을 지켜 만들어진 자바 프로그램이다.각각의 서블릿은 Servlet Interface 를 상속받아 구현하고있는데, 서블릿 컨테이너가 이를 관리하며 이 컨테이너를 통해 서버와 통신한다.동적인 웹 페이지는 클라이언트와 서버가 통신할 때, 서버와 프로그램이 또 Servlet을 통해 상호 작용을 한다.하지만 각 서블릿에서 데이터를 주고 받는게 아니라 이를 가지고 있는 서블릿 컨테이너에게 위임하기때문에 서블릿 컨테이너와 서블릿 사이의 규.......

Naver Blog

버블정렬 , 선택정렬 , 삽입정렬

자료 구조 : 정렬 알고리즘1. 선택정렬 = Selection Sort배열에서 맨 앞에 있는 숫자를 key로 잡고 뒤에 있는 수들과 순서대로 비교한 후, 1:1 교환한다.# 선택정렬 비교 방식# Java 소스 코드# 실행 결과2. 삽입 정렬 = Insertion Sort2번부터 순서대로 그 앞 값과 비교 후 자리를 1:1로 교환한다.뒤에 값을 key로, -- 하면서 앞으로 비교하는게 포인트.# 삽입 정렬 비교 방식# Java 소스 코드 # 실행 결과3. 버블 정렬 = Burbble 정렬가장 쉬운 정렬 방법.앞에서 뒤로 계속해서 1:1비교후 교환한다. 뒤는 점점 비교 안하게 된다.# 버블 정렬 비교 방식# 소스 코드# 실행 결과

Naver Blog

Spring Boot - 프로젝트 생성

# Spring Boot 프로젝트 생성하기 new > Spring Starter Project 버튼을 누르면 아래와 같은 창이 뜬다.Name : 프로젝트의 이름이자 , URL 포트 뒤에 들어갈 이름Type : Maven 과 Gradle 중 어느 것을 사용할 지 선택Java Version : 1.8 Version을 사용해서 8 선택Package : src/main/java 폴더 밑에 생기는 패키지 명자신이 설정하고 싶은대로 설정한 후 , NextDependency 에 Web 의존성만 추가해주고 Finish 를 누른다.프로젝트가 다음과 같은 구조로 생성이 된다.!!! 다음과 같은 구조로 생성되지않고, 오류가 발생하면 !!!pom.xml에 <dependencies> 와 </dependencies>사이에 다음과 같은 문구를 추가한다.al.......

Naver Blog

SpringBoot - 포트 변경하기

Spring Boot를 실행할 때 가끔씩 port 8080 already using 이런 오류가 발생한다.해결법은 엄청 간단하다.src/main/resources 폴더에 있는 application.properties 에server.port = 원하는 포트번호 만 적어주면 끝난다.이 이후에 실행해보면설정한 8008 포트로 실행되는 것을 확인할 수 있다.

Naver Blog

JDBC ? DataSource ? SqlSession ?

# JDBC = Java DataBase Connectivity자바 프로그램 안에서 SQL 문을 실행하기 위해 사용되는 API(Application Programming Interface)를 말한다.JDBC API는 데이터 베이스 종류랑 상관 없지만,각 데이터 베이스의 종류(mysql,oracle 등) 에 알맞은 JDBC Driver 를 사용해야 한다.( mysql = com.mysql.jdbc.Driver , Oracle = oracle.jdbc.driver.OracleDriver )# JDBC 의 흐름1. JDBC 드라이버 로드 ( Driver )2. DB 연결 ( Connection )3. DB의 데이터를 읽거나 쓰기 실행 ( Statement -> excuteQuery or ExecuteUpdate )4. DB에서 결과값 받아오기 ( ResultSet )5. DB와의 연결 종료 ( Close )# DateSourceJDBC만.......

Naver Blog

SpringFramework - classpath

스프링 공부를 하다보면 다음과 같이 경로가 classpath 로 시작하는 경우가 있다.잘 이해안하고 그냥 com.my.~~ 패키지 경로가 classpath 인가보다 하고 넘겼는데 제대로 설명된 글을 보고 정리해보고자 한다.프로젝트 우클릭 - Properties 로 들어가서 Deployment Assembly 로 들어가면,src/main/java 와 resources 가 WEB-INF/classes 를 가르키고 있다.프로젝트를 실행하면, 맨 위의 4개의 폴더(src/main/*, src/test/*)에 있는 파일들이 컴파일 되면 모두 classes폴더에 옮겨진다. classpath는 결국 classes 파일을 순환하면서 찾는다.classpath 는 src/main/webapp/WEB-INF/classes이고, 저 네 파일을 모두 포함하는 개념이라고.......

Naver Blog

SpringMVC - Mybatis ( mysql )

# Mybatis 란?데이터 베이스 관련 프로그래밍을 좀 더 쉽게할 수 있도록 도와주는 프레임 워크.개발자가 작성한 SQL 명령어와 자바 객체를 매핑해주는 기능을 한다.SQL 명령어는 XML 파일에서 관리하고, 적은 줄의 자바 코드로 DB와의 연동을 처리한다.Mysql을 사용하는 mybatis 를 설정하는 방법은 다음과 같다.1. pom.xml 을 통해 의존성 추가자신과 맞는 버전을 사용해야 합니다. 저의 스프링과 자바 버전은 다음과 같습니다.<java-version>1.8</java-version><org.springframework-version>4.3.2.RELEASE</org.springframework-version>2. root-context.xml에 dataSource와 SqlSessionFactory 를 생성Da.......

Naver Blog

JavaScript - 회원가입 Form 확인하고 submit 하기

회원 가입을 할 때, 입력해야할 필수 정보가 Null은 아닌지,비밀번호는 제대로 입력했는지 확인하기 등등 값을 체크하고나서 Submit 해야할 때가 있다.간단한 예제를 살펴보자.두번 째 줄 name="userInfo" onsubmit="return checkValue()" 을 보면document.name.value 를 통해 form 의 값을 얻기 위해 name을 userInfo로 주었다.onsubmit : submit하기 전에 유효성 검사를 위해 사용하는 이벤트로, False 가 return되면 submit 하지 않는다.확인하는 Function은 다음과 같이 짠다.document. 뒤에 들어가는 것들은 form과 input 에 지정한 name들이다.각각의 if 문에 해당되면 false 를 리턴해 submit 하.......

Naver Blog

SpringFramework - Security 3. 에러메시지 및 페이지

지식 출처 : https://to-dy.tistory.com/81?category=720806현재, 커스터마이징 한 로그인 페이지에서는 로그인 실패를 해도 아무런 반응도 일어나지 않는다.따라서 오류메시지를 출력해줄 필요가 있다.Spring security 에서, 예외가 발생하면 해당 예외에 대한 객체를 만들어 세션에 저장한다.세션에 담긴 Key 이름은 SPRING_SECURITY_LAST_EXCEPTION 이다.로그인에 실패할 경우, 현재 뒤에 error 파라미터가 붙는다. 이때 세션에 저장된 예외 키값도 같이 따라오게 된다.core 라이브러리를 이용해, if문으로 해당 키가 비어있지 않다면 에러 메시지를 출력하도록 한다.예제는 다음과 같다.추가한 부분은 이 부분이다. - SPRIN.......

Naver Blog

SpringFramework - Security 4. DB와 security login service 연동

지식 출처: https://to-dy.tistory.com/85?category=720806지금까지는 예제로 이렇게 하나하나 권한을 가진 회원을 입력해줬지만, 서비스에서 이렇게 하나하나 입력해 줄수는 없는 노릇이다. 그래서 DB와 연동하는 방법을 알아보려고 한다.1. pom.xml 에 Spring-jdbc 및 mybatis dependency 를 추가해준다. - mysql사용자는 mysql dependency 도 등록해야한다. 필자는 orcle 사용.2. security-context.xml에 자신에게 맞는 dataSource를 등록해준다.그리고 그 dataSource를 이용하여 사용자 인증을 하는 구문, 사용자의 권한을 가져오는 구문을 등록해준다.3. 회원정보를 저장할 DB를 만들어주고, 테스트 할 레코드를 하나.......

Naver Blog

SpringFramework - Security 5. 패스워드 암호화

암호화를 할 때, 세 가지를 유의해야 한다.1. 데이터 베이스에서의 암호화에 의존하지 않는다.2. 단방향 암호화( 평문-> 암호화 만 가능, 암호화->평문 불가능 ) 해야 한다.3. 예측이 불가능하도록 salt 처리를 해줘야한다. ( salt 는 비밀번호의 복잡도를 위해, 알고리즘을 교란하기 위해 사용하는 암호화할 때의 추가적인 값)현재 DB에는 이렇게 개발자가 ID, PWD 모두 확인할 수 있도록 되어있다.하지만 사용자의 password를 개발자라 해도 함부로 보면 안되므로, 암호화 하는 방법에 대해 알아보도록 한다.암호화하는 방법은 spring security의 BcryptPasswordEncoder를 이용하면 쉽다. 다음과 같다.1. security-conte.......

1 2 3