java

    자바 기초 다지기 - 6 (Thread, Syncronized, Serializable, IO, NIO)

    Thread와 Runnable Thread는 하나의 프로세스 안에서 여러 개 생성되고 고객이 필요에 따라 이 Thread를 사용하고 작업이 끝날 경우 반납한다고 생각하면 되겠다. Runnable : Thread의 인터페이스 Thread Class: Runnable의 구현체 Thread의 실행 방법 run() 메소드로 구현이 가능하며 start()로 실행이 가능하다. Thread에 주요 메소드 Thread.sleep(1/1000초) : 쓰레드를 잠재운다. Thread.join() : 쓰레드가 끝날 때까지 기다린다. Thread.interrupt() : 쓰레드를 정지 시키고자 할 때 사용하는 메소드로서, 쓰레드가 일시 정지 상태일 경우 에러를 발생시켜 run() 메소드를 정상 종료 시킨다. Thread De..

    javap 테스트, for문 안에서 String 문자열 합칠 경우 과연 new 객체를 생성할까?

    javap 테스트, for문 안에서 String 문자열 합칠 경우 과연 new 객체를 생성할까?

    개요 for문 안에서 String 문자열을 합칠(+) 경우 new String("")객체로 생성되어 성능상 좋지 않다는 글을 읽고 테스트 했다. 테스트는 ubuntu에서 JDK 11버전, javap를 통해 확인했다. java로 String을 만들고 for문 전, 내부, 후 3가지를 확인해보기 위해 다음과 같이 작성했다. public class Sample{ public String gcTest(String data){ String result = "start"; result += "Test"; System.out.println("for문 시작하기 전"); for( int i = 0 ; i < 10 ; i++ ){ result += "test"; System.out.println("for문 안에"); } ..

    자바 new, StringBuilder 메모리 사용량 테스트

    개요 자바 for loop에서 new와 StringBuilder를 사용했을 때 메모리 사용량 차이가 얼마나 날까? 위 사항에 대해 궁금해서 Runtime()을 이용해 테스트 해봤으며 테스트 조건과 코드는 다음과 같다 조건 1 : StringBuilder 사용해서 append와 delete 반복 public void builderTest(){ StringBuilder example = new StringBuilder(); for(int i = 0; i < 10000; i++){ example.append("- "); } String[] data = example.toString().split(" "); int len = data.length; Runtime run = Runtime.getRuntime();..

    자바 기초 다지기 - 2 (조건문, 반복문, 배열, 참조자료형, DTO, 상속, 오버라이딩, 오버로딩, 다형성)

    조건문 조건문은 연산자를 통해 boolean을 도출해내고 참/거짓으로 실행 여부를 결정한다. if if( boolean1 ) { // 만약 boolean1을 연산한 결과가 true이면 중괄호 내용을 실행해라... 중괄호 내용; } else if( boolean2 ) { // 만약 boolean1이 false이고 // boolean2를 연산한 결과가 true이면 중괄호 내용을 실행해라... 중괄호 내용; } else { // 위의 모든 조건이 false일 경우 실행해라... 중괄호 내용; } switch 비교 대상 변수가 주어졌을 때, case와 비교하여 같은 경우 처리 문장이 실행된다. break가 없을 경우 다음 case가 이어서 실행되기 때문에 break를 작성해주어야 한다. default는 case..

    자바 기초 다지기 - 1 (클래스, 메소드, 변수, 컴파일, 연산자)

    자바의 단위 Class : 행동과 상태의 집합 Method : Class 안에서 행위(기능)를 구현하는 것을 담당한다 Variable : 변수, 변하는 수라는 의미가 있으며 데이터를 임의의 변수에 저장하여 사용한다 기본적인 선언 구조 public class TestClass{ // ← 클래스 선언 ( 대문자로 작성 ) public String method(){ // ← 메소드 선언 ( 카멜케이스로 작성 ) String data = ""; // ← 변수 선언 // 중간 내용 return data; } } 이러한 자바의 클래스, 메서드를 구동하기 위해서는 프로그램상 어느 한 곳에는 main() 메서드가 선언되어 있어야 구동이 가능하다. public static void main(String[] args){ ..

    fetch() 사용법, javascript와 spring(java) 양방향 JSON 통신 방법

    fetch() 사용법, javascript와 spring(java) 양방향 JSON 통신 방법

    javascript fetch() → java/Spring 반환 프런트 엔드에서 백엔드로 비동기 데이터 전송 기존에는 javascript의 비동기 기능으로 XMLHttpRequest를 이용해 비동기를 구현했는데 이 기능은 사용하기에는 다소 불편한 점이 있어 좀 더 편하게 사용하기 위해 Jquery 라이브러리를 따로 받고 이에 포함되어 있는 ajax을 이용해 비동기를 구현했는데, ES6부터는 javascript 자체적으로 fetch(비동기 기능)을 지원한다. 이 fetch() 비동기 기능을 활용하여 Spring(java)로 데이터를 전송하는 테스트를 하려 한다 프런트엔드에서는 fetch()를 통해 데이터를 보내고 백엔드에서는 JSONObject를 통해 데이터를 받아 가공 및 사용한다. 메서드 타입은 RES..

    에러, 부적합한 Oracle URL이 지정되었습니다.

    에러, 부적합한 Oracle URL이 지정되었습니다.

    문제 새로운 Project를 생성해서 설정하고 테스트 하는 도중 발생했다. 저번에도 발생했던 오류이고 찾았었는데 이번에 또 발생하게 되어 정리해서 올린다. 해결방법 부적합한 Oracle URL이 지정되었다는 것은 주소(경로)를 잘못 적었다고 보면 된다. Ojdbc8.jar 에 있는 경로 말이다! 즉, 설정 할 때 그걸 잘 못 적은거다 jdbc:oracle:thin:@localhost:1521:xe 인데 thin -> this로 오타가 났다. 수정하면 끝!