전체 글
-
단위 테스트 1장책/단위 테스트 2022. 6. 26. 23:29
1. 단위테스트란? 테스트에 드는 노력을 가능한 줄이고 그에 따르는 이득은 최대가 되어야 한다. 즉, 무난하게 성장하고 유지보수가 많이 필요하지 않고 끊임없이 변화하는 고객의 요구에 신속히 대응할 수 있는 프로젝트이다. 이 책을 통해 어떤 단위테스트 기술이 좋은지를 구별하고 공통적인 안티패턴을 피하는 방법을 배운다. 1.1 단위 테스트 현황 테스트를 작성하는게 현재 소프트웨어 시장에서 당연한 현상이다. 하지만 일부 테스트는 오히려 예외를 잘 확인하지 못할 뿐더러 유지보수하는데 오래걸리는 효과만 얻는다. 이 책을 통해 좋은 테스트를 구성하는 법을 배우게 된다. 1.2 단위 테스트 목표 단위 테스트 활동이 더 나은 설계로 이어진다. 비즈니스 코드에 단위 테스트를 작성하면 일반적으로 더 나은 설계로 이어지기 ..
-
Filter 와 Interceptor 의 차이Spring 2022. 6. 26. 23:16
Spring Filter 와 Interceptor 이번 포스팅에선 닮은듯 다른 Filter 와 Interceptor 에 대해서 자세히 알아보도록 하겠습니다. 위 2개와 AOP 는 공통적으로 여러 작업을 처리함으로써 중복된 코드를 제거할 수 있다는 공통점이 있습니다. 3가지 지능들은 모두 어떤 행동을 하기전에 먼저 실행하거나, 실행한 후에 추가적인 행동을 할 때 사용되는 기능들입니다. 1. 필터(Filter) J2EE 표준 스펙 기능입니다. J2EE 란, 자바를 이용하여 서버 개발을 하기 위해 만들어진 플랫폼입니다. J2EE 스펙에 따라 제품으로 구현한 것을 웹 애플리케이션 서버 또는 WAS(대표적으로 톰캣)라 불립니다. Dispatcher Servlet 에 요청이 전달되기 전/후 에 URL 패턴에 맞는 ..
-
AWS Solution Architect Associate(SAA) 합격기DevOps/AWS 2022. 6. 3. 20:21
최근 블로그에 글을 잘 올리지 못했습니다. 여러가지 사유가 있었지만 그래도 가장 바빴던 건 Solution Architect Associate 를 준비하느라 시간이 별로 여유롭지 않았던게 가장 컸던거 같습니다. 결과는 한번에 합격을 했습니다!!! 저는 시험을 웬만하면 5월 전에 보고 싶어서 시험장을 찾아보니 가장 빠른게 6월 중순이었습니다. 그래서 온라인(재택) 시험으로 진행했습니다. 온라인 시험 보신분들을 찾고 싶어서 구글링을 해보았더니 대부분의 분들이 온라인으로 시험을 보지 않고 오프라인으로 시험을 보시더라구요. 이번 포스팅에서는 어떻게 시험을 준비하게 되었고, 준비과정, 마지막 선물(?) 을 알려드리고 포스팅을 끝내겠습니다. 왜 AWS SAA 를 준비하게 되었는가? 회사에서 이번년부터 AWS 를 사..
-
NGINX 기초웹서버/NGINX 2022. 5. 14. 22:22
NGINX 기초 해당 내용은 NGINX 쿡북을 정리한 내용입니다. 웹 서버로 사용한 프로그램은 보통 Apache 나 Nginx 를 사용합니다. 그 중에서도 Nginx 의 사용량을 보면 Apache 보다 더 많이 사용되는 걸 알 수 있습니다. 그 이유로는 여러가지가 있겠지만 고성능 트래픽을 효과적으로 처리 할 수 있다 는 이유는 빼 놓을 수 없습니다. 이번 포스팅에서는 Nginx 의 기본적인 사용법과 할 수 있는 기능들 마지막으로 nginx 를 설치하면 볼 수 있는 파일들을 간략히 정리해보겠습니다. 사용할 수 있는 기능 Nginx 는 웹 서버로 주로 사용되지만 웹 서버로만 사용될 수 있는 도구는 아닙니다. 사용할 수 있는 기능은 아래와 같습니다. 로드밸런서 여러 요청이 들어올 경우 하나의 인스턴스로 모든 ..
-
Java 의 Final 키워드언어/자바 2022. 5. 10. 21:08
개요 상속을 통해 기존 코드를 재사용할 수 있지만 때때로 다양한 이유로 확장성에 제한을 설정해야 합니다. final 키워드를 사용하면 정확히 그렇게 할 수 있습니다. Final Classes final 로 선언된 클래스는 상속될 수 없습니다. Java 핵심 라이브러리의 코드를 보면 많은 final 클래스들을 볼 수 있습니다. 대표적인 예시로는 String 클래스가 있습니다. 아래의 코드를 살펴보면 Cat 클래스는 final 로 선언되어 있고 이 클래스를 BlackCat 이 상속받고 있습니다. 그 결과 final 클래스인 Cat 을 상속받았다는 컴파일 에러가 발생한 것을 확인할 수 있습니다. @Getter @Setter public final class Cat { private int wieght; } p..
-
@Transaction(readOnly = True)Spring 2022. 5. 8. 15:07
TL;DR 안 써도 됩니다. 하지만 사용하면 성능 최적화 및 실수로 데이터를 변경하는 일을 방지할 수도 있습니다. 본문 JPA 를 사용하다보면 @Transactional(readOnly=True) 가 종종 사용되는 것을 볼 수 있습니다. @Transactional 을 사용하면 Spring AOP 가 해당 메소드 앞, 뒤에 transaction 시작과 transaction.commit() 을 실행해주기 때문에 사용해야 한다는 것을 알았지만 @Transactional(readOnly = True) 는 사용을 하던 하지 않던 별 차이(사실 그동안 어떤 차이도 느끼지는 못했습니다.) 를 느끼지 못했기 때문에 왜 써야하는지 의문이 많이 들었습니다. 최근에 동욱님 책으로 공부를 하고 있을 때 모든 포스팅을 읽어오는..
-
인터페이스언어/자바 2022. 5. 4. 22:51
인터페이스란? 인터페이스는 클래스의 청사진으로 볼 수 있는 기능이며 클래스에게 인터페이스 내에 있는 메서드들을 구현하도록 강제합니다. 언제 인터페이스를 사용해야 할까? 추상화 사용하려고 할 때 사용됩니다. 다형성을 위해 사용됩니다. public interface Shape { String name(); } public class Circle implements Shape { @Override public String name() { return "Circle"; } } public class Square implements Shape { @Override public String name() { return "Square"; } } List shapes = new ArrayList();..
-
스프링 부트와 AWS 로 구현하는 웹서비스 3장책/스프링부트와 AWS로 혼자 구현하는 웹서비스 2022. 5. 1. 23:43
JPA 라는 자바 표준 ORM 기술을 사용하면 객체지향 프로그래밍을 할 수 있습니다. MyBatis, iBatis 는 ORM 이 안닌 SQL Mapper 입니다. ORM 은 객체를 맵핑하는 것이고 SQL MAPPLER 는 쿼리를 매핑합니다. 3.1 JPA 소개 현대 웹 어플리케이션에서 RDB(Relational Database, 관계형 데이터베이스) 는 필수적인 요소가 되었습니다. 관계형 데이터베이스는 SQL 만 인식할 수 있기 때문에 SQL 은 필수적입니다. 하지만 객체지향 프로그래밍과 순수 SQL 이 만나면 패러다임 불일치 가 일어납니다. RDB는 어떻게 데이터를 저장할지에 초점이 맞춰진 기술입니다. 객체지향 프로그래밍은 메시지를 기반으로 기능과 속성을 한곳에서 관리 하는 기술 입니다. 아래 코드를 ..