본문 바로가기 메뉴 바로가기

Jun's TID

프로필사진

Jun's TID

Jun's TID
검색하기 폼 Mountain View
  • 분류 전체보기 (509)
    • 정보관리기술사 (0)
      • Network (0)
    • Mobile (158)
      • Android (71)
      • Dart (5)
      • Flutter (9)
      • ios (38)
      • react-native (35)
    • WEB (110)
      • DynamicWeb (33)
      • 자바스크립트 (22)
      • CSS (4)
      • jQuery (21)
      • ajax (4)
      • JPA (2)
      • React (21)
      • Node (3)
    • Database (25)
    • [Python] (35)
      • 문자열 조작 (4)
      • 선형 자료구조 (7)
      • Machine learning (17)
    • [JAVA] (111)
      • Spring-Boot (12)
      • Spring (47)
      • JExcel (3)
      • BeakJoon (4)
      • Programmers (23)
      • JAVA (8)
      • Algorithms (8)
      • Mybatis (6)
    • Network (12)
    • Projects (9)
    • Support (10)
    • 프로젝트 분석 (4)
    • English (8)
    • Life (2)
      • 운동냥이 (0)
      • 맛집냥이 (1)
      • 커피냥이 (0)
    • 정보보안기사 (2)
    • C++ (15)
      • 참고 (11)
      • 연습 문제 (4)
    • 누리 임보 일기 (7)
  • GUESTBOOK
  • TAG
  • RSS

분류 전체보기
<Thread> Thread의 단점과 Synchronized

이전에 포스팅한 join() 메서드에서도 언급했듯, Thread는 Main 메서드의 순서와는 별개로 실행된다는 것이 장점이자 단점이다. 즉, 실행 속도에 따라 원치 않는 결과를 얻을 수도 있는 것이다. 간단한 예시로 한 은행 계좌에 두 명의 사람이 각각 입금과 출금을 한다고 가정하고 코드를 짜 보자. ○Bank.java package com.choonham; public class Bank { private int money = 10000; //현재 잔액 초기 값 public Bank() { // TODO Auto-generated constructor stub } /* 입금 처리 메서드 */ public void MoneyIn(int save) { int m = this.money; try { Thre..

[JAVA]/JAVA 2021. 3. 31. 17:12
[JAVA] Programmers <Heap LV3> 디스크 컨트롤러

또, 예시가 1개뿐인 문제를 만났다. 상당히 복잡해 보이는 문제지만, 대기 시간이 0인 작업을 먼저 처리해주고 그다음에 작업 시간이 짧은 작업 순으로 처리하여 평균 시간을 구하면 풀릴 줄 알았다... package com.choonham; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.PriorityQueue; class Solution { public int solution(int[][] jobs) { int disk = 0; int sum = 0; int answer = 0; List tempArray = new ArrayList(); PriorityQueue pq = new..

[JAVA]/Programmers 2021. 3. 31. 16:37
<Thread> Join()

스레드는 기본적으로 메인과 따로 작동을 하기 때문에 Main 안에 어떤 순서로 스레드를 놓아도 따로따로 실행이 된다. 그러나 특정 데이터 값의 연산이나 특정 작업을 각 스레드가 모두 종료된 뒤에 실행되게끔 만드려면, 각각의 스레드가 모두 종료될 때까지 대기하다 Main을 끝마쳐야 한다. 이럴 때 사용하는 메서드가 바로 join() 메서드이다. ARS로 모금을 진행하는 간단한 예제로 이해해보자. ○Account: package com.choonham; public class Account { //모금함 private int total = 0; public Account() { } public void deposit() { this.total = this.total + 1000; } public int ge..

[JAVA]/JAVA 2021. 3. 31. 12:12
<Thread> Priority 지정하기

각 스레드 객체를 생성한 뒤 어느 스레드를 우선으로 실행할 지 지정해줄 수 있다. 그러나, 예시에서 사용할 코드는 각각 스레드의 작업량이 그렇게 많지 않아서 뚜렷한 우선순위 차이를 보기는 힘들다. 그냥 priority 를 이렇게 지정하는구나...라고 생각하면 될 거 같다. ○PriorityThread: package com.choonham; public class PriorityThread extends Thread { public PriorityThread() { // TODO Auto-generated constructor stub } public void run() { int i = 0; System.out.println(this.getName() + "[우선권:" + this.getPriority..

[JAVA]/JAVA 2021. 3. 31. 11:50
<Thread> Sleep을 이용한 간단한 타이머 구현

주먹구구식으로 Spigot 플러그인을 제작할 때, 항상 Runnable 인터페이스를 잘 사용을 못해서, HashMap으로 스킬 쿨타임 들을 구현했던 기억이 난다. (뭐, 지금 생각해도 Map이 더 효율적인 방법이긴 하지만...ㅎ) 아무리 여러 블로그에 있는 포스팅들을 읽어봐도 Multi Threads 로 제 각각의 타이머를 만드는 개념이 이해가 잘 안 됐었다. 그래서 다루는 김에 간단히 1분을 세는 타이머를 구현한 방법을 적어볼까 한다. ○RunnableTest: package com.choonham; public class RunnableTest implements Runnable { int count = 0; int num = 0; boolean timeOut = false; public Runnab..

[JAVA]/JAVA 2021. 3. 31. 11:23
[JAVA] Programmers <실력 체크 LV1>

오늘은 Heap의 LV3 문제를 하나 푸려고 프로그래머스에 접속을 했는데, 평소에는 보이지도 않던 실력 체크라는 탭이 눈에 들어왔다. ㅎㅎ... 코테 문제를 풀기 시작한 지 이제 2주 정도 접어들었는데, 내 실력은 어느 수준일까? 한번 확인해보고 싶기도 하고, 괜한 호기심이 생겨서 가볍게 LV1부터 풀어보기로 했다. 1번 문제: 복잡해 보이지만, 사실 들어오는 입력 배열에서 중복 값을 제거한 포켓몬 종류의 수가 (입력 배열 / 2)의 값보다 큰 지 비교하여 출력 값을 결정해주면 되는, 짜는데 3분도 안 걸리는 아주 간단한 문제이다. 나는 HashSet을 이용하여 중복 값을 전부 제거한 뒤, 비교하는 과정을 진행했다. package com.choonham; import java.util.HashSet; c..

[JAVA]/Programmers 2021. 3. 31. 08:42
<Thread> Thread 겉핥기

Multi Thread를 구현하기 위한 run() 메소드는 Runnable 인터페이스가 가지고 있으며, 이 Runnable 인터페이스를 구현받은 Thread 클래스를 이용하여 구현할 수도 있다. 즉, 간단하게 구조를 보면.. run() 메서드: public interface Runnable{ public void run(); } Thread 클래스: public class Thread implements Runnable{ public Thread(){ } @Override public void run() { } } 위와 같이 구성되어 있으므로 Thread 클래스를 상속 받거나, Runnable 인터페이스를 구현 받는 방식으로 run() 메서드를 구현할 수 있다는 것이다. ThreadClass를 상속 받는..

[JAVA]/JAVA 2021. 3. 30. 18:04
<자료 구조> JAVA의 Collection 자료 구조 정리

그 동안 여러 코딩 테스트, 알고리즘 문제를 풀면서 다양한 자료 구조를 사용하긴 했지만, 따로 정리한 내용이 부족한 것 같기도 하고, 오늘 강의에서 Java의 Collection 에 있는 자료 구조를 전부 설명해 주시길래 정리해보려고 한다. 1. ArrayList: 워낙 기본적인 내용이기도 하고 많이 사용해서...자세한 내용은 Pass. package com.choonham.list; import java.util.ArrayList; import java.util.Iterator; public class ArrayListTestClass { public ArrayListTestClass() { // TODO Auto-generated constructor stub } public static void a..

[JAVA]/Algorithms 2021. 3. 30. 16:18
<DB 맛보기> properties 파일을 상대 경로로 빠르게 찾자

DB와 프로젝트를 연동하기 위해서는 드라이버나 사용자 정보를 가지고 있는 properties 파일이 필요하다. 기본적으로 properties 파일은 연동 작업을 할 클래스와 같은 위치에 생성하는데, 같은 위치에 있는 properties 파일을 절대 경로로 읽게끔 코드를 작성하면 그 코드는 클라이언트 측에서 사용할 수 없기 때문에 반드시 상대 경로로 읽어와야 한다. 우선, properties 파일의 예제는 다음과 같다. 더보기 driver = oracle.jdbc.OracleDriver url = jdbc.oracle:thin@localhost:1521:orcl username = scott password = tiger 그리고, 데이터베이스를 연동하는 작업을 하는 클래스는 다음과 같이 정의하여 상대 경로..

Database 2021. 3. 30. 16:05
[JAVA] Programmers <Heap_LV2> 더 맵게

계산식: 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) 개인적으로 이렇게 테스트 케이스를 하나만 주는 경우를 굉장히 싫어한다. 테스트 케이스'만' 성공했을 때 그 반례를 찾기가 너무 시간이 오래걸려서 잘못하면 진짜 몇시간씩 진전도 없이 날리는 경우가 생기기 때문에.... 이 문제는 어제 포스팅에서 정리한 Heap이나 Priority Queue만 잘 활용하면 별 문제 없이 해결할 수 있는 문제이다. 우선 받은 스코빌 지수 배열을 모두 Priority Queue에 저장하여 insert와 동시에 스코빌 지수가 낮은 순으로 자동 정렬될 수 있게 만들어 주고, 스코빌 지수가 낮은 두 음식을 섞을 함수를 따로 만들어 저장해주면 끝! 사실 자료..

[JAVA]/Programmers 2021. 3. 30. 09:05
이전 1 ··· 46 47 48 49 50 51 다음
이전 다음
최근에 올라온 글
최근에 달린 댓글
TAG
  • await
  • 이탈리안 레스토랑
  • react-native
  • redux
  • Promise
  • 인천 구월동 맛집
  • javascript
  • 인천 구월동 이탈리안 맛집
  • 파니노구스토
  • 맛집
  • react
  • AsyncStorage
  • 정보보안기사 #실기 #정리
  • Async
  • redux-thunk
more
Total
Today
Yesterday

Powered by Tistory / Designed by INJE

티스토리툴바