본문 바로가기

IT

(84)
2021년 한 해를 되돌아보며...(5년차 개발자 2021년 회고) 0. TL;DR 조금은 큰 변화가 있던 한 해였다. 가장 큰 변화는 이직이었다. 그리고 여전히 부함을 많이 깨닫게 된 한 해였다. 2022년에는 위기에서 기회를 찾아 더 크게 성장하는 사람이 되어 보자 그리고 이러한 성장을 통해 많은 사람에게 귀감을 줄 수 있는 능력을 키우자! 1. 2021년에 새웠던 목표는? 2020년 회고 글 2020.12.27 - [IT/기타] - 2020년 한 해를 되돌아보며... 2020년 한 해를 되돌아보며... 0. TL;DR 이번 한 해는 나는 큰 변화가 없었지만, 외부 환경은 코로나라는 이슈로 떠들썩했던 한 해였다. 조금은 안일했던 한 해였던 것 같다. 오히려 내가 더 노력했어야 했고, 내면을 더 demoversion.tistory.com 2021년에 가장 큰 목표는 '..
docker: no matching manifest for linux/arm64/v8 in the manifest list entries. 환경 : MacBook Air (M1, 2020) mysql 설치를 위해 아래와 같은 명령어를 입력하면 docker run -d --name mysql \ -e MYSQL_ROOT_PASSWORD=123 \ mysql 이런 에러가 발생한다. docker: no matching manifest for linux/arm64/v8 in the manifest list entries 그럴 때는 --platform 옵션을 사용해 linux/amd64 라고 명시해 주면 된다. docker run -d --name mysql \ -e MYSQL_ROOT_PASSWORD=123 \ --platform linux/amd64 \ mysql 참고 https://docs.docker.com/engine/reference/co..
개발자의 글쓰기 - (2장. 개발 시간을 줄여주는 이름 짓기와 주석 쓰기) http://www.yes24.com/Product/Goods/79378905 개발자의 글쓰기 - YES24 오직 개발자를 위한 글쓰기의 모든 것을 담았다!이 책은 개발자의 글쓰기 능력을 종합적으로 향상하기 위한 책이다. 코드 안에서는 함수와 변수 이름을 짓는 것부터 주석 쓰는 법, 에러 메시지 www.yes24.com 2장 개발 시간을 줄여주는 이름 짓기와 주석 쓰기 01. 네이밍 컨벤션, 이유를 알고 쓰자 개발자의 가장 큰 고민은 이름 짓기 이름을 잘못 지어서 코드를 이해하기 어렵고, 자기가 이름을 지어놓고도 나중에는 그 이름이 무엇을 뜻하는지 모를 때도 많다. 잘만 하면 코드를 짜기도 쉽고 이해하기도 쉽다. 또한 다른 개발자 및 외부와 소통도 쉽고 문서를 대신할 수도 있다. 이름 짓기는 창조가 아니..
100일 커밋 회고 - (잔디를 심어보자) TD; LR 공부 쫌 더 열심히 해보자 부족했지만 만족스러웠던 흔적들... 100일 잔디 심기 시작 사실 큰 계기는 없었다. 이번 연도 초부터 다짐했던 '내가 부족한 부분은 내가 제일 잘 안다. 회피하지 말자'라는 생각과 가장 잘 맞아떨어졌다고 해야 하나? 그래서 100일 잔디심기에 끌렸던 것 같다. 공부를 한다고는 했지만 사실 책상에 앉아서 유튜브를 보거나 커뮤니티를 보거나 하는 시간이 많았다. 이러한 이유는 '공부를 해야겠다'는 너무나 크고 추상적인 목표가 있었기 때문이었다고 생각한다. 그래서 조금은 작게 목표를 잡고 그것을 하루하루 눈에 보이는 성과로 확인해야겠다고 생각을 했다. 그러던 중 친구의 추천으로 '정원사들' 이라는 작은 그룹에 들어가게 되었고, 시즌 6번째 멤버로 100일 잔디 심기에 도..
스프링 빈 생명주기 메서드와 실행 순서 스프링 빈 생명주기 메서드와 실행 순서 스프링 빈(Bean) 생명주기를 담당하는 메소드들을 알아보자 초기화 메소드 빈이 생성 되고 의존성 주입까지 완료된 후에 실행하는 초기화 메서드 @PostConstruct ```java import javax.annotation.PostConstruct; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @Slf4j @Component public class TempBean { @PostConstruct public void postConstruct(){ log.info("@PostConstruct !!!!!!!!"); } } ``` 메서드 선언부에 @PostConstr..
로그아웃 처리 필터: LogoutFilter 로그아웃 처리 필터: LogoutFilter 로그아웃을 처리하는 필터 LogoutHandler : 여러 개의 logoutHandler를 감싸고 있는 Composite 객체 LogoutSuccessHandler : 로그아웃 처리 후 어떻게 할 것인지 정의 기본 LogoutSuccessHandler는 SimpleUrlLogoutSuccessHandler 로그아웃 post 요청시에만 동작함 로그아웃 요청시 LogoutHandler에 기본적으로 등록된 logoutHandler들이 존재 로그아웃 config 설정 * 100 번째 글!!!!!!!!!
RestClientTest를 알아보자~ RestClientTest 어노테이션은 외부 API를 사용할 때 대상 API를 MOCKING 할 수 있는 유용한 테스트이다. 요청을 받는 쪽이 아닌 요청을 하는 쪽 입장에서의 테스트이다. @RestClientTest를 사용하면 MockRestServiceServer라는 임시 서버를 Bean으로 생성해준다. @SpringBootTest와 달리 지정한 최소한의 Context만 사용해서 테스트를 진행한다. 아래는 기존 Service 코드이다. @Service public class RestClientTestService { private final RestTemplate restTemplate; private final String openApiUrl = "https://httpbin.org/get"; pub..
Controller Test를 해보자~! 1. Controller Test(Web Layer) 1.1 컨텍스트 로드테스트 컨텍스트가 정상적으로 올라오는지 확인하기 위해 추가 @SpringBootTest class TestingWebApplicationTest { @Autowired private HomeController controller; @Test public void contextLoads() { assertThat(controller).isNotNull(); } } 1.2. Controller Test 1.2.1. HttpRequest Test 프로덕션과 마찬가지로 http 요청을 통해 응답을 확인할 수 있음 실제 서버를 구동시키는 것과 유사하게 테스트 동작 @SpringBootTest(webEnvironment = WebEnviron..
ThreadLocal에 대해서 알아보자 - 1 자바 ThreadLocal 클래스를 사용하면 동일한 Thread에서만 접근할 수 있는 변수를 만들 수 있다. 따라서 두 Thread가 동일한 코드를 실행하고 ThreadLocal 변수에 접근을 해도 서로의 ThreadLocal 변수를 볼 수 없다. ThreadLocal 생성 자바 객체를 만드는 것과 같이 new 연산자를 통해서 ThreadLocal을 생성 private ThreadLocal threadLocal = new ThreadLocal(); 해당 작업은 Thread 당 한 버만 수행하면 된다. 각 Thread에는 자체 설정된 ThreadLocal 값만 표시 ThreadLocal 값 사용 Thread 로컬에 저장된 값은 get() 메서드를 통해 사용할 수 있다. String threadLocalVa..
JPA 공부 - 6 2021/02/07 - [IT/데이터베이스] - JPA 공부 - 5 6. 다양한 연관관계 매핑 엔티티의 연관관계를 매핑할 때는 다음 3가지를 고려해야 한다. 다중성 단방향, 양방향 연관관계의 주인 다중성 다대일 (@ManyToOne) 일대다 (@OneToMany) 일대일 (@OneToOne) 다대다 (@ManyToMany) 다중성을 판단하기 어려울 때는 반대방향을 생각해 보면 된다. 단방향, 양방향 객체는 참조용 필드를 가지고 있는 객체만 연관된 객체를 조회할 수 있다. 객체 관계에서 한쪽만 참조하는 것을 단방향 관계라고 하고, 양쪽이 서로 참조하는 것을 양방향 관계라고 한다. 연관관계의 주인 테이블과는 다르게 엔티티를 양방향으로 매핑하면 서로를 A -> B, B -> A 서로를 참조한다. JPA는 두 ..