전체 글
-
[JAVA JUnit] assertThat의 isSameAs와 isEqaulTo 비교 분석프로그래밍 언어/JAVA 2022. 10. 1. 13:07
JUnit의 Assertions.assertThat을 이용해 테스트코드를 작성할 때 isSameAs와 isEqualTo 어떤 것을 사용해야되는가?를 이해하기 위해 포스팅으로 정리해볼까 한다. 📑 == 과 equlas() https://wonisdaily.tistory.com/38 [ch9 JAVA] String 클래스 생성자 & String, new String() 차이 char bar = new char [value]; return new String(bar); 위의 코드에서 new String()의 매개변수로 char를 넣으면 문자열 형태로 나오길래 String에 대해 더 공부해야겠다 싶었다. 앞에서 정리했던 건데도 불구하.. wonisdaily.tistory.com 앞서 포스팅한 내용에서 설명한 적..
-
[Spring Boot] 싱글톤 패턴 vs 싱글톤 컨테이너 ( @Configuration)Back-End/Spring Boot 2022. 10. 1. 12:40
📑 웹 애플리케이션과 싱글톤 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 다. 그때 DI 컨테이너에서는 요청할 때 마다 객체를 새로 생성한다. 예를들어 같은 memberService를 호출했을 때 결과값은 다 다른 주소값을 가진 다른 객체들을 생성한다. 이는 메모리 낭비가 심하다. 따라서 객체 1개만 생성되고, 이 객체를 공유하도록 설계하면 된다. 이게 바로 싱글톤 패턴인 것.! @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer(){ AppConfig config = new AppConfig(); //1. 조회 : 호출할 때마다 객체 생성 MemberService memberService = config.memberService(); //2...
-
[Spring Boot] 스프링 컨테이너 ApplicationContext 생성과 빈 등록, 의존 관계 설정Back-End/Spring Boot 2022. 9. 30. 13:22
앞에서 순수 자바 코드를 이용해 DIP, OCP 원칙을 지키며 MVC 패턴에 맞춰 프로젝트를 작성하는 방법에대해 알아봤다면, 이번엔 스프링으로 전환해서 DI를 적용해보려고 한다. 📑 스프링 적용하기 일단) 애플리케이션의 전체 동작 방식을 구성하기 위해, 구현 객체를 생성하고, 연결하는 역할을 했던, AppConfig 메서드에 @Configuration, @Bean 어노테이션을 붙여준다. //구성 정보, 설정 정보에 Configuration 어노테이션을 붙여준다. @Configuration public class AppConfig { //key는 메서드 이름 memberService() //value는 return 값으로 스프링 컨테이너에 등록된다. @Bean public MemberService memb..
-
[GitHub] Repository public, private 변경하는 방법Tools/Git & Github 2022. 9. 30. 12:45
강의를 들으며 배운 내용을 github에 저장하려고 처음 Repository를 생성했을 때 public으로 설정했는데, 생각해 보니 강의는 유료강의였다. 소스 코드를 마음대로 공유하면 안 되기에 private로 변경하려고 한다. 🔨 1. Repository -> Settings 클릭 🔨 2. Settings 하단 Danger Zone에서 change repository visibility 버튼 클릭 🔨 3. make public, make private 중 원하는 작업을 선택한다. 🔨 4. 사용자명/repository name을 따라 쓰거나 복사 붙여넣기 후 change 버튼 클릭 🔨 5. 비밀번호 입력 🔨 6. 변경된 공개범위 확인
-
[JAVA 객체 지향 설계의 원칙] OCP, DIP 예제로 완전 정복 ( + 관심사 분리)Back-End/Spring Boot 2022. 9. 30. 01:47
스프링 핵심 원리 - 기본편에서 섹션 2, 3 의 내용을 바탕으로 객체 지향 설계의 원칙 중 OCP(Open-Close Principle), DIP(Dependency Inversion Principle)에 대해 자세히 알아보려고 한다. 좋은 객체 지향 설계의 원칙 5가지는 아래 포스팅에 자세히 설명되어 있으니 참고 바람. https://wonisdaily.tistory.com/98 [Spring 개념] 객체 지향 설계와 스프링 나는 스프링의 원리에 대해 잘 이해하고 있는가?라고 질문하면 아니라고 말할 수 있다. 이번에 면접 준비를 하면서 기본 개념들에 대해 알아보는 시간을 가졌는데, 짧은 시간에 많은 개념을 맛 wonisdaily.tistory.com 📑 비즈니스 요구사항과 설계 DIP와 OCP 원칙을..
-
[JAVA] static import에 대하여 ( +IntelliJ에서 사용하기)프로그래밍 언어/JAVA 2022. 9. 29. 19:07
📑 static이란? 자바 클래스의 static 메서드는 클래스에 대한 인스턴스의 생성 없이 메서드를 사용할 수 있다. 그럼 static은 언제 붙이는 걸까?? 아래 4가지 개념이 있다. 1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다. : 생성된 각 인스턴스는 서로 독립적이기 때문에 각 인스턴스 변수(iv)는 서로 다른 값을 유지한다. 그러나 모든 인스턴스에서 같은 값이 유지되어야 하는 변수는 static을 붙여 클래스 변수로 정의해야 한다. 2. 클래스 변수(static 변수)는 인스턴스를 생성하지 않아도 사용할 수 있다. : static이 붙은 변수(클래스 변수)는 클래스가 메모리에 올라갈 때 이미 자동적으로 생성되기 때문이다. 3. 클래스 메서드..
-
[Spring 개념] 객체 지향 설계와 스프링Back-End/Spring Boot 2022. 9. 29. 12:24
나는 스프링의 원리에 대해 잘 이해하고 있는가?라고 질문하면 아니라고 말할 수 있다. 이번에 면접 준비를 하면서 기본 개념들에 대해 알아보는 시간을 가졌는데, 짧은 시간에 많은 개념을 맛보기로 알 수 있었다. 이상태론 취업을 한다고 해도 내 실력과 이해력에 내가 먼저 지칠 것 같아 다시 탄탄하게 스프링에대해 공부해보려고 한다. 기간은 2달 정도로 잡았고 인프런 김영한 강사님의 스프링 완전 정복 로드맵을 파고들 예정이다. 무려 52만원이나 주고 구매했다는,, 열심히 배워서 작은 프로젝트라도 하나 만들고 포트폴리오 다시 재정비해서 올해안에 취업하는게 새로운 목표다.! 📑 스프링 프레임워크와 스프링 부트 Spring Framework와 Spring Boot는 스프링을 공부했다고 하면 필수로 알아야될 부분인데,..
-
[Java Junit] AssertJ 메서드 사용법 알아보기프로그래밍 언어/JAVA 2022. 9. 27. 23:39
Spring mvc 패턴을 이용해 코드를 구현할 때 각 계층마다 테스트는 꼭 필요한 작업이다. 테스트를 위해 Junit5를 사용하는 강의를 보고있는데, 사용법에 대해 정리해볼까 싶어 포스팅을 작성한다. 📑 JUNIT이란? 자바를 위한 단위 테스트 라이브러리이며, 자바 애플리케이션에 대한 단위 테스트를 쉽게 해주는 테스트용 프레임워크라고 이해하면 된다. 단위 테스트 Unit Test는 모든 함수와 메소드에 대한 테스트 케이스 testcate를 작성하는 절차로 소스코드의 특정 모듈이 의도대로 정확히 동작하는지 검색한다. 우리가 콘솔창에 System.out.println()로 매번 동작 결과를 확인해야 하는 테스트 및 디버깅 과정을 쉽게할 수 있다. 📑 JUnit 어노테이션 📌 @Test : 메서드 위에 해당..