분류 전체보기
쓰레드. 메인메서드가 끝이면 작업 종료?! NO!
package chap13; public class ThreadEx1 { public static void main(String[] args) { ThreadEx1_1 ex1_1 = new ThreadEx1_1(); ThreadEx1_2 ex1_2 = new ThreadEx1_2(); ex1_1.start(); new Thread(ex1_2).start(); // 새 쓰레드가 시작할 때 러너블객체를 담아서 실행 for (int i = 0; i < 1000; i++) { System.out.print("2"); } System.out.println("end of main"); // 메인메서드의 끝을 확인. main메서드가 끝이지만 다른 쓰레다가 // 아직작업을 마치지 않은 상태라면 프로그램이 종료가 아니라..
쓰레드(Thread) - start()와 run()
start() 와 run()의 차이 start() run() 새로운 쓰레드가 작업을 실행하는데 필요한 호출스택을 생성한 다음에 run()을 호출해서, 생성된 호출스택에 run()이 첫 번째로 올라가게 한다. main 메서드에서 run()을 호출하는 것은 생성된 쓰레드를 실행시키는 것이 아니라 단순히 클래스에 선언된 메서드를 호출하는 것일 뿐. main메서드에서 run()을 호출했을 때의 호출스택 새로운 쓰레드를 생성하고 start()를 호출한 후 호출스택의 변화 run()으로 실행 package chap13; public class ThreadEx1 { public static void main(String[] args) { ThreadEx1_1 ex1_1 = new ThreadEx1_1(); Threa..
쓰레드(Thread)의 실행과 구현
+ 프로세스 >> 실행 중인 프로그램 : 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성. 쓰레드 >> 프로세스라는 작업공간에서 작업을 처리하는 일꾼 : 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것. 쓰레드의 구현방법 Thread클래스를 상속 Runnable인터페이스를 구현 Thread클래스를 상속받으면 다른 클래스를 상속받을 수 없다. - 일반적인 방법 - 재사용성이 높고 코드의 일관성을 유지할 수 있다. -객체지향적인 방법 -오로지 run()만 정의되어 있는 간단한 인터페이스 package chap13; public class ThreadEx1 { public static void main(String[] args) { ThreadEx1_1 ex1_1 = new..
Spring - DB연동 >> DB에 있는 데이터 가져와서 웹으로 출력
2022.04.05 - [Spring] - 프링프링 - 스프링을 이용한 현재시간출력 feat.서블릿 프링프링 - 스프링을 이용한 현재시간출력 feat.서블릿 자바에서 서블릿을 이용해 웹 브라우저로 결과를 확인했었는데, 훨씬 단축된 작업과정과 좀 더 편리하게 스프링에서 해당 예제를 통해 결과를 확인해보았다. 1. Spring regacy project > Spring MVC Project dys-r.tistory.com 첨부된 게시글과 똑같은 방식으로 스프링프로젝트를 생성해준다. 시작 이전에 DB에 시험용 데이터를 담은 테이블을 생성한다. - Board.java package cloud.dullinsub.webtest.domain; import org.springframework.stereotype.Com..
프링프링 - 스프링을 이용한 현재시간출력 feat.서블릿
자바에서 서블릿을 이용해 웹 브라우저로 결과를 확인했었는데, 훨씬 단축된 작업과정과 좀 더 편리하게 스프링에서 해당 예제를 통해 결과를 확인해보았다. 1. Spring regacy project > Spring MVC Project > (next) > > 이름 명명 > www.dullinsub.cloud인 경우엔 > cloud.dullinsub.webtest > 3번째 자리에 오는 webtest 이름으로 실행될 것임. - src/main/java에 HomeController.java 클래스가 만들어져 있을것이다. - 이곳이 웹으로 결과를 출력해줄 서블릿 역할을 하는 곳이다. - 서블릿에 정보를 보내줄 jsp파일도 만들어져 있다. - 실행 시 출력을 잘되있는걸 확인했지만 숫자가 깨져있다. - jsp로 다시..
스프링(Spring) 빌드 이후 오류발생! - (ex.라이브러리 추가 이후 오류발생!)
스프링을 이용하다 프로젝트 생성 혹은 사용 도중에 빌드가 완료되고 나서 빨강피를 많이 흘리는 경우가 종종 있다. 필자의 경우 라이브러리 추가 이후에 오류가 발생했지만, 이를 해결하는 방법으로 빌드 이후 생기는 오류들을 대부분 해결했다. 바로 방법을 살펴보자. - 에러발생 - 오류가 발생한 프로젝트 1. 우클릭 > maven > update project > Force Update of Snapshots/Releases 체크 후에 ok를 누른다. 이는 빌드를 새로 다시 하게끔 하는것인데 경미한 에러들은 이 방법으로 해결이 될 것이다. 단축키로는 Alt + F5 가 있다.
FileSplit - 파일 크기분할
- 분할 할 파일을 해당 예제를 진행하는 프로젝트에 넣어본다. package a220405; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FileSplit { public static void main(String[] args) throws IOException { final int VOLUMN = 1024 * 1; // 몇 byte로 나눌지 크기 지정 String fileName = "fender_origin.png"; // 분할 ..
ApplicationContext(애노테이션 기반 스프링 설정 XML파일) - C, P
.xml파일에서 Namespaces에서 C(class)와 P(property)체크 새로운 문장이 생긴것을 확인 이랬던 코드가 // setter injection 2000 p:amount 를 사용하면 이렇게 요약 가능! 이랬던 코드가 // constructor injection 2000 c:amount를 사용하면 이렇게 요약 가능!
Hikari - 히카리 커넥션 풀(Connection pool) 사용해보기
시작 이전에 필요한 라이브러리를 받아줘야 한다. 1. HikariCP 2. slf4j-api - DBconn.java package utils; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Properties; import javax.sql.DataSource; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; public class DBcon..
jQuery - RSS(xml parsing)를 이용한 기사내용 크롤링하기
RSS는 XML 기반의 표준 이므로 내부적으로 XML parsing을 한 것을 짚고 넘어가자. 이번 예제에서는 한겨레신문기사를 크롤링 해볼것이다. https://www.hani.co.kr/arti/RSS/list1.html RSS서비스 : 한겨레 RSS서비스 : 한겨레 www.hani.co.kr 국제 카테고리에 속한 기사를 크롤링해보려고한다. it.java package controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import javax.servlet.ServletException; import javax.servlet.ann..