java

    [Spring] AWS S3에서 Spring Boot로 파일 다운로드

    [Spring] AWS S3에서 Spring Boot로 파일 다운로드

    프로젝트 중 AWS S3에서 특정 버킷의 파일을 다운로드 받아야 하는 상황이 생겨 기록을 한다. build.gradle - 의존성 추가 dependencies { ... implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' ... } spring boot와 aws를 연동시키기 위해 build.gradle에 spring-cloud-starter-aws를 추가한다. application.yml - aws 자격 정보 입력 cloud: aws: credentials: instance-profile: false access-key: {IAM MY_ACCESS_KEY 입력} secret-key: {IAM MY_SECERT_..

    [Java] 인터페이스

    https://github.com/whiteship/live-study whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 백기선님 자바 기초 스터디 8주차 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 정의하는 방법 인터페이스는 추상클래스처럼 추상메서드를 ..

    [Java] 패키지

    [Java] 패키지

    https://github.com/whiteship/live-study whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 백기선님 자바 기초 스터디 7주차 목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 패키지(package) 패키지는 클래스의 묶음이다. 서로 관련된 클래스끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 클래스가 물리적으로 하나의 클래스파일(.class)인..

    [Spring] Jasypt를 이용한 암호화

    [Spring] Jasypt를 이용한 암호화

    Jasypt는 자바에서 암호화를 쉽게 할 수 있도록 도와주는 라이브러리이다. When? Spring에서 datasource를 연동할 때, application.yml 파일에 다음과 같이 설정할 수 있다. spring: datasource: url: jdbc:mysql://... username: user123 password: pass123 driver-class-name: com.mysql.cj.jdbc.Driver 이 때, password: pass123과 같이 외부에 노출되면 안되는 정보이다. 특히 깃허브같은 원격 저장소에 등록할 때는 더욱 주의해야 한다. 이와 같이 특정 프로퍼티에 대한 암호화가 필요할 때, Jasypt를 사용할 수 있다. How? gradle project 기준 implement..

    [Intellij] 환경 변수 등록

    [Intellij] 환경 변수 등록

    인텔리제이에서 시스템 환경 변수를 사용하고 싶어서 export PASSWORD=1234 이렇게 로컬에 환경 변수를 지정하고 System.getenv("PASSWORD") 이렇게 환경 변수를 꺼내서 사용하면 된다는데... 나의 경우는 되지 않았다. 방법이 없나 찾아보니, 인텔리제이 자체에서 환경 변수를 제공하는 것을 알게 되었다. 인텔리제이 터미널을 키고 "env"를 입력해보자. env PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin __CFBundleIdentifier=com.jetbrains.intellij SHELL=/bin/zsh SECURITYSESSIONID=186b7 TERM=xterm-256color ... 이렇게 무슨무슨 jetbrains.intel..

    [Intellij] 디버그

    [Intellij] 디버그

    Intellij에서 유용한 디버그 기능에 대해 알아보겠다. 다음 디버그 방식을 알아두면 Intellij 뿐만 아니라 Jetbrain사의 여러 IDE 혹은 그 밖의 IDE에서 유용하게 활용할 수 있을 것이다. 디버그는 기본적으로 "break point"라는 고정점을 사용한다. 이렇게 고정점을 추가하면(해당 라인을 클릭하면 된다), 디버그 시 고정점에 해당하는 라인 바로 직전까지 실행된 상황을 아래와 같이 보여주게 된다. 1. 왼쪽 블록은 고정점 직전까지의 콜 스택 상황을 파악할 수 있고, 2. 오른쪽 블록은 고정점 직전 까지의 변수와 그에 대한 값을 확인할 수 있다. 앞서 설명한 두 뷰가 오류를 찾아내거나 코드 구조를 파악하기 위한 디버그의 메인 기능이다. 따라서 디버그는 나의 코드 뿐만 아니라 다른 사람..

    [Intellij] import문 자동 정리하기

    [Intellij] import문 자동 정리하기

    intellij에서 코딩을 하다 보면 위처럼 사용하지 않는 import문들이 남아 있는 것을 볼 수 있다. 이 때, 단축키를 활용해서 사용하지 않는 import문을 정리할 수 있다. 맥: command(⌘) + option(⌥) + O 윈도우: Ctrl + Alt + O 그러나 이 방식은 파일마다 일일이 단축키를 눌러줘야 한다는 단점이 있다. 따라서 다음 방법을 사용하면 전체 파일의 import문을 관리할 수 있다. Action 검색(command(⌘) + shift(⇧) + A) -> "auto import" 입력 "Optimize imports on the fly 체크" 이제 전체 코드들에 대해 사용하지 않은 import문은 자동으로 삭제된다.

    [Java] 상속

    [Java] 상속

    https://github.com/whiteship/live-study whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 백기선님 자바 기초 스터디 6주차 목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 자바 상속 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속은 코드의 재사용성을 높여 프로그램의 생산성과 유지보..