[Java] 필드 주입시 생성자에 this 꼭 써야할까?
·
개발/JAVA
나는 아래와 같이 class 에서 생성자 코드를 작성시 항상 생각없이 this를 썼다. class Board { String name; String content; public Board(String name, String content) { this.name = name; this.content = content; } } 한번도 this를 꼭 써야하나라는 고민은 하지 않았기 때문이다. 대부분 클래스의 생성자로 필드 주입시 위와 같이 this를 사용한다. 왜냐하면 필드의 변수명과 생성자로 주입받는 파라미터의 변수명이 같기 때문이다. class Board { String name; String content; public Board(String name, String content) { name = nam..
[모아두기] ubuntu 22.04 - EC2 세팅시 필요한 명령어들
·
모아두고 나중에 쓰기
0. pemkey 읽기 권한 주기 chmod 400 *.pem 1. docker 설치 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/..
[Spring Boot] Mockito란?
·
개발/Spring Boot
1. Mokito Mokito는 단위 테스트를 위한 mocking 프레임 워크이다. 쉽게 말해 가짜 객체인 Mock을 생성해주고 관리하고 검증할수 있도록 지원한다. 구현체가 없거나 의존성을 고려하지 않고 특정 단위만 테스트 할 수 있도록 환경을 만들어준다. 2. Mock객체 여기서 registerComment 메소드를 부르면 CommentDao의 insertComment가 실행되어야 한다고 하자. 이를 위해 테스트를 한다고 했을때 중점으로 볼 부분은 insertComment가 호출이 되었는지 아닌지 이다. 즉, 내부에 어떤 코드가 작성되어있는지는 관심없고 결과가 중요한 것이다. registerComment 메소드의 단위 테스트를 실행하기 위해 Mock객체는 여기서 CommentDao를 가짜로 사용할 수 ..
[Spring Boot] DI 구현 방법 3가지
·
개발/Spring Boot
DI를 구현하는 방법은 필드주입, 세터 주입, 생성자 주입으로 3가지가 있다. 이 3가지에 대해서 간단하게 정리하려고 한다. 먼저 DI를 하면 외부에서 의존성을 주입받기 때문에 (1) 테스트가 용이해지고 (2) 객체간 결합도를 낮추고 (3) 코드의 재사용성을 높인다. 1. 필드 주입 @Controller public class FoodController { @Autowired private FoodService foodService; } 필드에 @Autowired 어노테이션만 붙여주면 의존성이 주입된다. 코드가 간결하지만 프레임워크에 의존적이고 외부에서 수정이 불가하다. 외부에서 수정이 불가하다는 것은 테스트 코드 작성시 객체를 수정수 없다는 말이 된다. 2. 세터 주입 @Controller public..
[Spring Boot] dotenv(.env) 때문에 날려버린 2일
·
개발/Spring Boot
문제 상황 AWS S3 연동을 위해 access key 와 secret key를 발급 받고 연동 시작 로컬 IDE (vscode) 에서는 S3에 정상적으로 작동 문제는 build 후 jar파일 실행시 권한이 없다고 뜸 삽질 과정 구글링이란 구글링은 다 해본듯 하다. 어떠한 것도 해결 되지 않았음. 그러다 문득 application.yml 에 있는 access key와 secret key등 .env 파일에서 받아오는 부분을 하드코딩 해봄 jar파일에서도 S3 연결 성공! 문제는 .env 에서 value값을 받아오는 과정에서 생겼다고 드디어 문제점 파악 문제점 value값에 더블쿼테이션을 쓴게 문제였다. AWS_ACCESS_KEY="envTest" 위처럼 설정했었는데 IDE에서는 정확하게 읽기 때문에 문제점..