일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- mssql
- JPA
- git
- Javascript
- Python
- network
- 오블완
- java
- 리눅스
- group by
- Linux
- 명령어
- top
- docker
- MongoDB
- spring
- 트랜잭션
- DBMS
- oracle
- IntelliJ
- 자바
- SQL
- analytics4
- 차이점
- MariaDB
- mysql
- 티스토리챌린지
- rsync
- API
- PostgreSQL
- Today
- Total
목록JAVA (46)
hanker
https://hanke-r.tistory.com/229 JAVA - 멀티쓰레드(Multi Thread) 반복문 병렬처리 방법개발을 하다보면 반복문은 무수히 많이 쓰인다.반복문이 반복횟수가 많아지면 시간이 오래걸리고 보다 더 빠르게 처리해야 되는데, 반복문 안에 있는 코드를 더 이상 최적화 시킬 수 없을 경우hanke-r.tistory.com 이전 글에 이어 멀티쓰레드 처리 시 연산처리를 하는 방법을 알아보자. 연산 처리할 경우에 ( java.util.concurrent.atomic ) 패키지중 AtomicInteger 클래스를 사용하려고 한다.AtomicInteger 클래스는 Java 5 버전 이상부터 사용 가능하다.또한 일반 int와 달리 여러 스레드에서 동시에 접근해도 값이 유지되고, 동기화(sy..
개발을 하다보면 반복문은 무수히 많이 쓰인다.반복문이 반복횟수가 많아지면 시간이 오래걸리고 보다 더 빠르게 처리해야 되는데, 반복문 안에 있는 코드를 더 이상 최적화 시킬 수 없을 경우에는 좌절하게 된다..( 물론 단순 연산처리나 작업 자체가 복잡하지 않으면 멀티쓰레드 오버헤드 때문에 병렬 처리의 성능 이점이 사라지고 더 느려질 수 있음 ) 그럴 때 사용하게 되는 멀티쓰레드 방식을 정리해본다. 1. Parallel Stream (병렬 스트림) 2. ExecutorService - Parallel Stream Java 8버전에서 제공하는 Stream API에는 병렬처리할 수 있는 기능이 있다.스트림을 병렬로 처리하면 내부적으로 포크-조인 풀(Fork-Join Pool)을 사용하여 멀티 코어를 활용한다. ..
특정 디렉터리 안에 위치한 디렉터리 리스트를 정렬해서 가져오는 코드를 알아보자. Java 1.8을 사용했고, 1.8 이전 버전 사용 예도 알아보자. 우선 특정 디렉터리(D:\\hanker)를 살펴보자.디렉터리 7개와 파일 7개 있다. 이 중에서 디렉터리만 추출해보자.public static void main(String[] args) throws Exception { // 특정 디렉터리 경로 설정 String directoryPath = "D:\\hanker"; File directory = new File(directoryPath); // 경로가 디렉터리인지 확인 if (!directory.isDirectory()) { System.out.println("Not..
람다라 불리는 이 기능은 java 8 버전에서 도입된 기능으로, 익명 함수(anonymous function)를 더 간결하게 작성할 수 있게 해준다.(여기서 익명함수란 일회성 함수를 뜻한다. 재사용하지 않고 특정 위치에서 일시적으로 필요한 동작을 정의할 때 사용)코드의 가독성을 높이고, 중복성을 줄이는데 유용하다. 간단하게 문자열 출력을 하면서 비교해보면서 알아보자.기존 방식// 기존 표현식new Thread(new Runnable() { @Override public void run() { System.out.println("Hello, World!"); }}).start();새로운 스레드를 만들어 Hello, World를 출력하는 내용이다.위 코드를 람다식으로 변경해보자..
Java의 Stream은 Java 8에서 도입된 기능으로, 데이터 컬렉션(List, Set, Map 등) 또는 배열에 대해 다양한 연산을 처리할 수 있다. Stream은 중간 연산(Intermediate Operation)과 최종 연산(Terminal Operation)으로 나뉜다.중간연산은 조건, 최종연산은 결과 값이다.1. 중간 연산 (Intermediate Operation)filter(Predicate): 조건에 맞는 요소만을 필터링map(Function): 요소를 다른 타입으로 변환sorted(): 요소를 정렬distinct(): 중복 요소 제거limit(long n): 처음 n개만을 추출skip(long n): 처음 n개를 건너뜀2. 최종 연산 (Terminal Operation)forEac..
이전에 썻던 내용인데 Url Connection 하여 데이터 송수신 할 경우에, GET방식으로 보낼지 POST 방식으로 보낼지 설정한다. 대부분 API에서 어떤 방식으로 보내라고 설명되어있는데, 대표적인 GET/POST 방식을 살펴보자. 요청 받는 API를 만들어보자 @RequestMapping("/test") public Map test(@RequestParam Map params) { Map map = new HashMap(); map.put("index", "1"); map.put("name", params.get("name")); return map; }해당 API 에서는 파라미터에서 name이라는 Key에 value값을 찾아서 m..
1. HttpUrlConnection 로컬에서 돌고있는 API를 하나 실행시켜서 결과값을 받아보자.- API@RequestMapping("/test")public Map test() { Map map = new HashMap(); map.put("index", "100"); map.put("name", "spring"); return map;} - URL 호출public static void main(String[] args) throws Exception { try { // 요청할 URL (HTTP) URL url = new URL("http://127.0.0.1:2000/test"); // HttpURLConnection 객체 생성 ..
HTML언어를 문자열로 받을 때, 태그 열고 닫는 태그가 있어서 replace 문자열 변경이 수월하진 않다. 변경하는 방법을 찾아보자. 1. 정규식 사용 - 시작 태그와 끝나는 꺽새(>) 를 찾아서 그 안에 있는 내용들이랑 같이 삭제한다. public static void main(String[] args) throws Exception { String html = "안녕하세요"; String regExp = "]*>"; System.out.println(html.replaceAll(regExp, "")); }결과 2. JSOUP 라이브러리 사용 org.jsoup jsoup 1.14.3 pom.xml에 라이브러리 추가 public stat..
단일로 있는 역슬래시나, 숫자 앞에 있는 역슬래시 없애는 방법 정규식 사용 public static void main(String[] args) throws Exception { String html = "\\ 10만원 \\100,000원 \\2 \\3 \\99999 "; // \\\\ : 실제 역슬래시, \\d : 숫자, \\s : 공백 String regExp = "\\\\(\\d|\\s)"; // "$1"은 첫번째 값을 가져옴 예를들어 \\100,000원은 역슬래시 뒤 1을 가져오게 됨 System.out.println(html.replaceAll(regExp, "$1")); } 결과.
public static void main(String[] args) throws Exception { Timestamp ts = new Timestamp(System.currentTimeMillis()); System.out.println("Timestamp 출력: " + ts); System.out.println("Timestamp to String 출력: " + getTimeStamp(ts)); } /** * parameters (Timestamp) return (String 13) */ public static String getTimeStamp(Timestamp item) { if(item == null) { ..