일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- VCS
- AWS
- spring
- Linux
- 네트워크
- Lombok
- Heap
- Elk
- socket
- redis
- libuv
- Static
- Java
- github
- reactive
- HTTP
- html
- network
- r
- cache
- 데이터통신
- mongodb
- reactor
- effective
- ajax
- NoSQL
- mybatis
- git
- javascript
- nodejs
- Today
- Total
목록Java (29)
빨간색코딩
1. 마이바티스란?객체지향 언어인 자바의 관계형 데이터 베이스 프로그래밍을 좀더 쉽게 할수 있게 도와주는 개발 프레임워크이다.자바는 jdbc api 를 제공해주지만, 이런 JDBC를 이용하면 1개 클래스에 반복된 코드가 존재, 한 파일에 java언어와 sql언어가 있어서 재사용성 등이 안좋아지는 단점이 있다.Mybatis는 jdbc의 이러한 단점들을 개선했으며, 개발자가 작성한 SQL 명령어와 자바 객체를 매핑해주는 기능을 제공하며, 기존에 사용하던 SQL 명령어를 재사용한다.특징한 두줄의 자바 코드로 DB 연동을 처리SQL 명령어를 자바 코드에서 분리하여 XML 파일에 따로 관리2. Ibatis 와 MybatisIbatis는 아파치 프로젝트였을때 이야기고, 구글로 넘어가면서 Mybatis로 이름만 바뀌..
서블릿(servlet) from JungHoon Lee 1. 서블릿이란?HTTP protocol 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속하여 개발하며, Servlet은 컨테이너에 의해서 실행되고 관리된다.HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다.서블릿은 외부 요청마다 프로세스보다 가벼운 스레드로써 응답한다.2. JSP와 서블릿의 차이점JSP : HTML 문서 안에 java 코드를 포함하고 있다. MVC에서 View 역할서블릿 : 자바 코드 안에 HTML을 포함하고 있다. 주로 MVC에서 컨트롤러 역할3. 서블릿 컨테이너(톰캣 등)란?HTTP 요청을 받아서 Servlet을 실행하고 생명주기를 관리하는 역할을 한다.servlet과 웹서버가..
1. static 이란?객체마다 데이터를 가지고 있는데, 이걸 공유해야 할 상황에 static을 쓴다. 여러 객체의 메소드들이 동시에 접근, 수정할 수 있는 전역변수같은 느낌이다.static 키워드를 사용한 변수를 클래스 변수라고 한다. 즉 객체가 아닌 클래스의 변수이기 때문에 new로 객체를 안만들었어도 사용이 가능하다. ex. System.out.println(Test.count);2. 메모리 상 위치클래스 변수는 JVM Runtime Data Area에서 Method area 에 들어간다. 여기서 클래스는 Method area에, 객체는 heap에 올라간다. static이 붙으면 클래스의 시그니처?같은 것들이 메모리 상에 로딩되면서 같이 올라가는 것이다. 따라서 아래에서 설명할 static 변수, ..
1. 접근제어자의 종류현재 클래스동일 패키지상속받은 하위클래스모든 클래스publicOOOOprotectedOOOXprivateOXXX(default)OOXXpublic : 모든 외부에서 직접 접근하거나 호출 가능protected : 현재 클래스와 동일 패키지이거나 다른 패키지이더라도 상속 시에는 접근하거나 호출 가능private : 현재 클래스 밖에서는 사용X(default) : 현재 클래스와 동일한 패키지 내에서만 접근하거나 호출 가능, 뭐 안붙이면 이거다.2. 주로 어디다 쓰는가클래스는 public 과 default만 선택가능하다.필드는 다 쓸 수 있지만 보통 private로 한다. 완벽한 상수는 public static을 주로 사용한다.메소드도 다 할 수 있다. 추상메소드에는 private 쓰면 안..
1. 생성자란?객체를 생성할 때 init하는 것이다. 생성자는 오로지 클래스에서 객체를 생성(new)할 때만 사용된다. 몇가지 특징으로는 생성자의 이름은 클래스명과 동일하고, 리턴 타입이 없다.2. 기본 생성자생성자를 따로 정의하지 않고 클래스를 만들더라도, 객체는 만들어진다. 이것은 컴파일러가 default 생성자를 끼워넣었기 때문이다.// Test.java public class Test { public static void main(String[] args) { System.out.println("hello world"); } } // javap -c Test.class C:\Users\sjh836\Desktop>javap Test.class Compiled from "Test.java" publi..
참조문서 : https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html1. 예외처리란?Exception Handling 이라고 하며, 잘못된 하나로 인해 전체 시스템이 무너지는 결과를 방지하기 위한 기술적인 처리이다. java에서는 예외와 에러도 객체로 처리한다.예외가 주로 발생하는 원인사용자의 잘못된 데이터 입력잘못된 연산개발자가 로직을 잘못 작성하드웨어, 네트워크 오작동시스템 과부하2. Throwable 클래스(클릭하면 크게 보인다..) Throwable 클래스는 예외처리를 할 수 있는 최상위 클래스이다. Exception과 Error는 Throwable의 상속을 받는다. 유명한 것들만 정리해보았으며, 실제로 더 많다. io.IOExcept..
참조문서 : https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html1. 쓰레드란?자바의 메인메소드 역시 하나의 실행흐름으로서, 메인 쓰레드에 해당한다. 이것은 main() 메소드에서 Thread.currentThread().getName(); 를 통해 확인이 가능하다. 쓰레드를 이용하면 하나의 프로세스에서도 병렬적(동시적)으로 처리, 즉 여러 개의 처리 루틴을 가질 수 있다. 단순 반복의 코드를 실행할 때도 여러 개의 쓰레드를 만들어서 분리 시킨 뒤 결과 데이터를 받아 합치면 그만큼 시간을 절약할 수 있다. 특히 짧은 시간 내에 많은 사용자를 처리해야하는 대용량 시스템이나 CPU 활용을 극대로 해서 처리해야 하는 복잡한 연산 작업 등에 많이 쓴다..
참조문서 : https://docs.oracle.com/javase/8/docs/api/java/io/package-frame.htmlio 부분에서 JDK 1.4 이전 방식을 클래식 I/O 라고 하고, 이후 방식을 NIO(Non-blocking I/O)라고 한다. 이제는 클래식 IO를 사용한다 해도 내부적으론 NIO를 활용하기 때문에 성능차이는 크게 없다.1. java에서 I/O란?I/O를 스트림(Stream)이라고 부르기도 한다. 접두어로 in, read 가 붙으면 입력관련이고, out, write 가 붙으면 출력관련이다. 데이터를 읽고 쓰는 대상으로는 디스크, 사용자 입출력, 네트워크 등이 있다.읽기 전용쓰기 전용1 Byte 단위 처리InputStreamOutputStream2 Byte 단위 처리Re..
참조문서 : https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html1. 컬렉션이란?java.util 패키지에서 가장 핵심, 여러 개의 객체를 보관할 수 있게 만들어진 클래스들(자료구조)주요 용어리스트(List) : 순서를 가지고 있으며, 중복을 허용하는 보관 구조(인덱스 번호가 핵심)세트(Set) : 순서를 가지지 않고, 데이터의 중복을 허용하지 않는 구조맵(Map) : 키-값을 가지며, 키를 가지고 원하는 데이터를 검색하는 구조Element : 자료구조 안에 들어가는 데이터를 의미시간복잡도사진출처: http://bigocheatsheet.com/2. *List 계열리스트는 내부적으로 무한대의 배열을 가진다. ArrayList를 까보면 p..
oracle에서 제공하는 jdk 8을 설치하는 방법에는 여러가지가 있을 것이다. wget으로 다운받으려 하는 경우, 라이센스 동의 쿠키를 따와야 한다. 아래는 명령어다 wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm" 현재 경로에 jdk rpm이 설치될거고, rpm -Uvh 로 설치한다.보통 설치 경로는 /..
1. JVM(Java Virtual Machine)이란?jvm은 java를 운영체제로부터 독립적으로 실행시켜주는 핵심이자 원리이다. 예를들어 C언어의 경우 소켓프로그램을 윈도우에서 짜면, 리눅스에서는 같은 코드로 돌아가지 않는다. 컴파일조차 실패할거다. 헤더파일도 다르고 함수명도 전부 다르니ㅋㅋ 그렇지만 java는 소켓프로그램짜두면 윈도우든 리눅스든 맥이던 플랫폼에 상관없이 돌아간다.2. JVM 구성요소JVM은 위 그림처럼 4가지 구성 요소를 가지고 있다.3. Class Loader.java 파일을 javac로 컴파일하면 바이트코드(.class)가 나온다. 이 파일을 컴파일 타임이 아닌 런타임에(동적으로) 메모리로 올려서 실행하는 부분이 Class Loader이다.※ Class Loader에 의해 바이트..
학교애들 알려주던거 기록해둔다ㅋㅋ Thread.sleep(1000); 이 이해안된다고!? 참조문서: http://docs.oracle.com/javase/8/docs/api/javax/swing/Timer.html 1. Timer 클래스의 생성자Timer(int delay, ActionListener listener) delay : 초기 지연 후에 listener를 설정된 밀리세컨드마다 호출한다.listener : 호출될 이벤트 2. 소스 이다. 3. 실행결과메인쓰레드 START반복문0반복문1반복문21번째 호출: Sun Mar 19 00:23:14 KST 2017반복문3반복문42번째 호출: Sun Mar 19 00:23:16 KST 2017반복문5반복문63번째 호출: Sun Mar 19 00:23:18 ..
어노테이션(Annotation)에 대해 알아보자 나는 공부할 때 사진이 많은 것은 ppt로 정리하여 두고, 텍스트만있다면 txt에 적어두는데, 블로그에 올리기 위하여 ppt자료를 풀어서 써본다(피피티에 더 자세히 설명해뒀으니.. 혹시 참고하실분은 슬라이드쉐어 보세유) Annotation from JungHoon Lee 1. 어노테이션이란 - @를 이용한 주석, 자바코드에 주석을 달아 특별한 의미를 부여한 것 - 컴파일러가 특정 오류를 억제하도록 지시하는 것과 같이 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공, 코드에 정보를 추가하는 정형화된 방법. 2. 어노테이션의 용도 - @Override 어노테이션처럼 컴파일러를 위한 정보를 제공하기 위한 용도 - 스프링 프레임워크의 @Controlle..
16년 6월에 OCJP를 취득하였다. OCJP는 Oracle Certified Java Programmer의 약자로, 오라클에서 인증해주는국제 자바자격증이라고 보면된다. 시험코드는 1Z0-851이다. 시험접수할 때 이것으로 해야하기 때문에 알아야한다. OCJP는 1Z0-851를 합격하면 오라클에서 자동으로 알아서 준다. OCJP 덤프를 첨부한다. 구글링하면 널린게 덤프다 내가 정리한 정보 1. 총 60문제, 최소 30분이상 응시(미달되면 부정행위로 간주), 시험시간 150분2. 점수 커트라인: 61%3. 피어슨뷰 사이트, 오라클 사이트 계정4. 시험은 영어로 봐라: 덤프를 영어로 공부했는데 시험 한글로나오면ㅋㅋ 재밌어진다. 내 친구가 잘모르고 한국어로 시험신청했다가 탈락했다고 한다ㅋㅋㅋ(문제는 한글로, ..