반응형 Java31 [스프링 핵심 원리] JAVA 프로젝트에 OOP 원리 적용하기 (SRP, OCP, DIP) 앞선 포스팅에서 스프링 프레임워크와 객체 지향 설계의 SOLID 원칙의 관계에 대해 알아보았다. 이번 포스트에서는 순수 자바로 된 예제 코드를 작성한 뒤 여기에 객체 지향의 원리를 적용해볼 것이며, 그 후에는 이를 스프링으로 간단히 전환해 보겠다. 이전 포스트 -> [스프링 핵심 원리] 객체 지향 SOLID 원칙과 Spring의 관계 JAVA 프로젝트 설계하고 구현하기 공부를 위해 간단히 정리하여 남기는 목적이라, 강의에서보다 더 단순한 예제를 만들어볼 것이다. 예제 프로젝트 요구사항 회원은 가입하고 조회할 수 있다. 회원 데이터는 자체 DB를 구축할 수도 있고, 외부 시스템과 연동할 수 있다. (미확정) 요구사항을 보면 '미확정'인 부분이 있다. 이는 추후 서비스 기획에 따라 언제든지 바뀔 수 있다. .. 2021. 12. 5. [스프링 핵심 원리] 객체 지향 SOLID 원칙과 Spring의 관계 스프링은 제어의 역전, 의존관계 주입을 통해 다형성을 극대화해서 이용할 수 있게 도와준다. 스프링을 사용하면 역할과 구현을 편리하게 다룰 수 있는 것이다. 이처럼 스프링은 객체 지향 프로그래밍과 밀접한 관련이 있다. 객체 지향 설계의 5원칙 (SOLID 원칙) 1. SRP (Single Responsibility Principle: 단일 책임 원칙) 한 클래스는 하나의 책임만 가져야 한다. 여기서 말하는 하나의 책임이란 매우 모호하다. 클 수도 있고, 작을 수도 있고 문맥과 상황에 따라 달라진다. 따라서 이를 적절히 잘 조정하는 것이 기술이다. 이 책임이란 것에 대한 중요한 기준은 바로 "변경"이다. 변경이 생겼을 때 그에 따른 파급 효과가 적으면 SRP를 잘 따른 것이라고 볼 수 있다. 2. OCP (.. 2021. 12. 3. [JAVA/JUnit5/Mokito] given() - 메소드 파라미터가 특정 클래스이면서 특정 필드 값을 가지는 경우 분기하기 새로운 팀으로 옮겨진지 약 3달 만에 끔찍한 TF를 벗어나고 드디어 팀에 관련된 일을 하게 되었다. 요즘은 테스트 코드만 하루 종일 짜는 중이다. 자바로 쓰인 Spring Boot 프로젝트에 대한 테스트 코드를 짜고 있어서 JUnit5에 Mokito 라이브러리를 사용 중이다. 테스트 코드를 처음 짜 봐서 초반에 정말 고생했다. 지금도 어려운 건 마찬가지이다. 문제점 - given(module.func( (ParamClass)param1)) .willReturn(ret1)을 사용할 때 param1과 다른 인스턴스로 인식되는 case 테스트 코드를 짜 보니 given - when - then 구조로 대부분 구성하게 되었고 given().willReturn() 구문을 자주 이용했다. 그런데 given()에 M.. 2021. 11. 27. [Spring] DB 연동(2) - JdbcTemplate과 쿼리 이전 포스트에서는 스프링에서 JDBC를 이용해 DB 연동을 처리하는 방법을 알아보았다. 이번에는 JdbcTemplate 클래스를 이용해 스프링에서 편리하게 쿼리를 실행하는 방법을 알아볼 것이다. JdbcTemplate을 이용한 쿼리 실행 스프링에서는 DataSource나 Connection, Statement, ResultSet을 직접 사용하지 않고 JdbcTemplate을 이용해서 편하게 쿼리를 실행할 수 있다. DB와 상호작용할 클래스에서 JdbcTemplate 객체를 생성해서 사용한다. 또한 해당 클래스를 설정에서 빈으로 등록한다. public class MemberDao { private JdbcTemplate jdbcTemplate; public MemberDao(DataSource dataSo.. 2021. 9. 13. 이전 1 2 3 4 5 6 ··· 8 다음 반응형