728x90
반응형

자바 7

[스프링부트] 스프링캐시 Spring Cache 설정 및 속도 비교

서론 특정 데이터들을 반복적으로 호출하고 있는 코드가 있었다. 현재까지는 2천 개보다 조금 많은 수준의 데이터를 가지고 있었지만, 앞으로 훨씬 더 많은 데이터가 들어갈 예정인데 단순히 조회를 위한 데이터임에도 여러 곳에서 데이터를 호출해야하기 때문에 캐시 도입을 결정하였다. 캐시를 설정하는데에는 여러 방법이 있지만 스프링부트로 백엔드를 개발하고 있기 때문에 스프링에서 제공해주는 스프링 캐시를 사용하기로 하였다. 본론 1. 캐시 메모리에 저장할 데이터 정의 @Data public class SomeDataCache { private T someData; private LocalDateTime expirationDate; } 2. 캐시 설정 파일 정의 @EnableCaching @Configuration p..

웹, 앱 2023.09.04

[Java] Linux-centOS7에 openJDK 11 설치하기

1. 설치 가능한 JDK를 확인 아래 명령어로 설치 가능한 JDK를 확인한다. yum list java*jdk-devel 2. 다운받을 버전의 자바를 설치해준다. 지금은 11을 설치할 것이므로 다음과 같은 명령어로 설치한다. yum install java-11-openjdk-devel.x86_64 3. 설치 확인 javac -version 자바 버전이 나온다면 정상 설치된 것이다. 4. 자바 경로 설정 다음 명령어로 심볼링 링크를 찾아준다. readlink -f /usr/bin/javac 경로가 나올 것인데, 마지막의 /bin/javac를 제외한 부분을 복사해둔다. 아래 명령어로 설정을 열어준다. vim /etc/profile 가장 아래에 다음과 같이 적어준다. export JAVA_HOME=(복사한 경..

자바 2022.08.29

[이펙티브 자바] 생성자 대신 정적 팩터리 메서드를 고려하라(아이템 1)

장점 1. 이름을 가질 수 있다. // Example public class Person{ private String job; // 생성자 public Person(String job){ this.job = job; } // 정적 팩터리 메서드 static Person jobOf(String job){ return new Person(job); } } public class Main{ public static void main(String[] args){ // 생성자 이용 Person p1 = new Person("student"); // 정적 팩터리 메서드 이용 Person p2 = Person.jobOf("student"); } } 위의 예시에서 Person 인스턴스를 만들 때, 생성자를 이용하는 경..

자바 2022.08.24

자바 입출력: Scanner vs BufferedReader

처음 자바를 배울 때는 키보드에서 입력받기 위해 Scanner를 사용했다. 그리고 혼자 공부를 시작하면서 BufferedReader를 더 많이 사용하기 시작했다. 그런데 막상 그 차이점은 잘 모르고 단순히 BufferedReader가 더 효율적이라는 말에 쓰기 시작했다. 그래서 두 가지를 비교해보았다. 1. Scanner java.util 패키지 키보드에서 입력받는 대로 바로 처리 엔터와 스페이스로 구분 -> 공백 입력 불가 원하는 타입으로 받을 수 있음 import java.util.Scanner; Scanner scanner = new Scanner(System.in); int n; n = scanner.nextInt(); 2. BufferedReader java.io 패키지 키보드의 입력을 버퍼에 ..

자바 2022.02.26

자바의 특징과 구조

1. 자바의 특징 운영체제에 독립적: 자바로 작성된 코드는 JVM(Java Virtual Machine) 위에서 실행되기 때문에 운영체제에 구애받지 않고 코드를 작성하고 실행할 수 있다. 눈에 너무도 익숙한 그 문장 Write once, run anywhere 객체지향언어: c++은 엄밀하게 말해서 객체지향언어가 아닌 객체지향지원언어라고 할 수 있다. 왜냐하면 객체를 이용하지 않고도 코드를 작성할 수 있기 때문이다. 그러나, 자바는 모든 것이 객체에서 시작해서 객체에서 끝나는, 말 그대로 '객체지향언어'이다. 비교적 배우기 쉽다: 자바의 정석에서는 이를 자바의 특징으로 내세우고 있는데, 사실 이건 사람 바이 사람이기 때문에 특징으로 볼 수 있는지 의문이 든다. 객체 지향의 사실과 오해를 보면 자바 개발자..

자바 2022.02.25

이클립스 vs 인텔리제이

처음 자바를 배울 때는 이클립스를 통해 배웠다. 그리고 Spring을 배우기 시작하면서 인텔리제이를 사용하기 시작했다. 그리고 인텔리제이를 사용해 보기 전에 안드로이드 스튜디오를 사용해보았는데 인텔리제이를 사용하기 시작하면서 안드로이드 스튜디오가 인텔리제이를 기반으로 만들어졌다는 것을 알게 되었다. 1년 전 학교에서 고작 한 학기 배운 자바를 다시 자세히 파보려 하는데 어떤 툴이 좋을지 고민하다가 알아보게 된 내용을 정리해보려고 한다. 이클립스 무료 자동 완성, 코드 추천 빈약 HTML, CSS, JS 코드 작성할 때 지원이 미약 Spring 개발 시 인텔리제이보다 번거롭고 어려움 특히 Lombok 설치 번거로움 전자정부 프레임워크는 공식적으로 이클립스 개발 환경을 지원함 인텔리제이 유료(무료 버전, 학..

자바 2022.02.25

자바 8 vs 자바 11

결론: 자바 11에서 몇 가지 기능이 추가되었지만 프로젝트 등에서는 안정성을 위해 자바 8을 사용하는 것이 좋다 자바 8 (출처: 스프링 입문을 위한 자바 객체 지향의 원리와 이해) Interface Default and Static Methods Lambda expressions // 람다식 미적용 코드 public class NoLambda{ public static void main(String[] args){ Runnable r = new Runnable(){ public void run(){ System.out.println("Run!!"); } } } } // 람다식 적용 코드 public class UseLambda{ public static void main(String[] args){ R..

자바 2022.02.25
728x90
반응형