본문 바로가기

백엔드/자바

자바 Executor 보호되어 있는 글입니다. 더보기
자바 Stream과 Optional Stream 데이터를 담고 있는 것은 컬렉션. 스트림은 이러한 컬렉션에 들어있는 데이터들을 가지고 연산을 실행하는 것. 컬렉션에 담겨있는 데이터값이 변경되는 것은 아니다. 중개 operation과 종료 operation로 나뉜다. 중개 operation은 LAZY 하다. 중개 operation은 LAZY 하기 때문에 종료operation이 들어와야 스트림의 연산이 끝난다. 그래서 여러개의 중개 연산과 하나의 종료 연산으로 구성되어있다. List names = new ArrayList(); names.add("hello"); names.add("man"); names.add("iii"); names.add("aaa"); names.add("bbb"); // 중개 연산. 연산이 끝나지 않았으므로 리턴값은 스.. 더보기
자바8의 인터페이스 1. Default 메소드 등장배경 아래의 인터페이스가 있다. public interface StaticAndDefault { void printName(); } 해당 인터페이스를 구현한 구현체 클래스가 1000개 있다고 가정해보자. 만약 해당 인터페이스에 함수가 하나 추가되어야하는 상황이라면? 그리고 추가될 함수는 어떤 구현체든지 동일한 로직이라면? 복붙을 1000번 해야하는 상황이 오게된다. 사용방법 public interface StaticAndDefault { void hello(); default void hi() { System.out.println("hi"); } } default 키워드를 붙인 함수를 인터페이스에 넣어주면 해당 인터페이스의 모든 구현체는 default 키워드가 붙은 함수들을.. 더보기
Ecplise failed while installing Java 1.8 해결 스프링 공부 도중 jsp와 서블릿을 다시 복습해야겠다는 생각이 들어 오랜만에 이클립스에서 Dynamic Web Project 생성해서 공부해보려는데 생성 과정에서 문제가 발생했다. 경로도 잘 설정되어있는데 뭐가 문제지 하면서 삽질하다가 해결,, Default Output Folder 설정해주고 ( build/classes ) Content directory도 마찬가지로 WebContent로 설정했더니 문제없이 돌아간다. 더보기
스프링 mysql 연동 h2에서 mysql로 요즘은 백엔드 개발을 위한 스프링 프레임워크에 빠져서 공부하는 중인데 항상 디비는 H2랑 연동해서 공부하다가 H2가 가볍다는 장점은 있지만 아무래도 실서비스에서는 성능 문제로 안쓰다보니 실제로 많이 쓰이는 MySQL을(내가 가장 많이 썼고 제일 익숙하기도 한..) 연동해서 쓰려면 어떻게 해야하나 구글링을 해봤는데 간단하게 정리된 글이 없는 거 같아서 한번 남겨본다. 해야할 일 이 글에서 소개할 스프링과 MySQL을 연동하기 위한 방법으로 해야할 일은 딱 두가지이다. - build.gradle에 드라이버 추가, 코드작성 1. build.gradle에 드라이버 추가 compile 'mysql:mysql-connector-java' 코드를 추가해준다. 2. 코드 작성 이제 Connecti.. 더보기
자바 thread 간단 정리 목차 1. thread 구현하기 2. 스레드 동기화 문제 3. 스레드 상태제어 4. 스레드 함수 활용 5. 데몬스레드 1. thread 구현하기 구현하기 위해서는 스레드를 상속받거나 러너블 인터페이스를 구현하는 2가지방법이 있다. 자바에서 제공해주는 Thread 클래스를 상속하든지 Runnable 인터페이스를 implement 하든지 하면 된다. 그리고 그 다음은 둘 다 동일하게 run 함수를 오버라이딩하면 된다. 메인 함수에서의 사용법은 좀 다르다. (Runnable은 아래에서 설명) Thread 클래스를 상속받아서 구현한 경우에는 new 를 통해 인스턴스를 만든 후 start() 함수를 호출하면 만들어둔 thread 클래스의 run 함수가 동작한다. main 스레드와는 별개로 동작하며 스레드를 생성하.. 더보기
이클립스 사용 팁 코딩 공부도 공부지만 우선 활용하는 도구부터 유연하게 다룰 수 있어야 실력도 금방금방 늘고 개발도 효율적으로 할 수 있을 거라고 생각한다. 내가 앞으로 이클립스를 사용하면서 얻게되는 팁들을 계속해서 업데이트할 예정. 1) 자동완성 기능추가 상단의 window의 preferences를 들어가서 Content Assist 에 들어간다. 보니까 content assist가 두개가 있던데 아래 처럼 뭐가 많이 보이는걸 찾는다. 맨 아래칸 Auto Activation의 두번째 항목 Auto activation triggers for java에 입력할건데 저기에 들어있는 문자를 입력하면 자동완성 리스트를 보여준다는 거다. a~z A~z . _ 까지 다 일일이 입력해준다. (대소문자 A to Z 하고 점이랑 언더바).. 더보기
자바의 date 클래스와 I/O 클래스 보호되어 있는 글입니다. 더보기
자바 set, list, map 사용법 기초 1. Set Set은 인터페이스이므로 new를 통해 인스턴스를 생성할 수는 없다. 그러므로 Set을 implement한 hashSet이나 TreeSet인스턴스를 new 키워드로 생성하도록 한다. Set의 add 메소드는 리턴값이 boolean형이다. 중복을 허용하지 않으므로 저장에 성공을 했는지 아니면 이미 있어서 무시당했는지를 true false로 알 수 있다. Set은 Iterator 인터페이스를 구현한다. 2. Set 필요에 따라서 길이가 늘어나는 가변적 배열이라고 보면 된다. Set과는 다르게 중복을 허용한다. List는 인터페이스이므로 이를 구현한 가장 대표적 자료구조인 ArrayList로 예를 들어보겠다. 3. Map map인터페이스를 구현한 Collection 프레임 워크 클래스에는 대표적으.. 더보기
자바 inner 클래스 사용법 보호되어 있는 글입니다. 더보기