전체 글

멈추지 않고 꾸준히 배우는 이들에게 도움이 되고픈 블로그입니다.
convention guide/Design Pattern

0. UML 및 기초

1. UML 시스템 개발을 위한 시각적인 설계 표기 UML은 표준화된 모델링 언어 : 시각화, 명세화, 구축, 문서화 언어이다. 2. UML 다이어 그램 유스 케이스 클래스 순차 통신 활동 상태 컴포넌트 배치 패키지 3. 객체 지향 모델링 모델링 : 개발하고자 하는 프로그램을 시각적으로 표현한 것 객체 지향 모델링 : 객체 지향 시스템을 가시화하고 명세화, 문서화 하는 것이 목적인 모델링 소프트웨어 모델링 : 실제 생활에 일어나는 일을 소프트웨어적으로 모델링한 것 시스템 설계 시, 중요점 : 신뢰성, 확장성(유지보수) 4. 객체, 클래스, 메시지 메시지 객체간의 협력하기 위한 상호작용 수단 한 객체가 다른 객체에게 작업을 요청하는 신호 객체 1가지의 역할만 가지고 변하는 것과 변하지 않는 것을 분리시켜야..

spring/spring 핵심

⭐️ 스프링 핵심 원리 이해 5 - 컴포넌트 스캔

1. 컴포넌트 스캔과 의존관계 자동 주입 컴포넌트 스캔 필요성 등록해야 할 spring bean이 수백개가 되면 일일이 등록하기 힘들고, 설정 정보도 커지고, 누락하는 문제도 발생 bean 등록을 해주는 컴포넌트 스캔과 더불어 의존관계를 주입 해주는 @Autowired도 제공 @Bean 등록 Overiding, 예외 처리 조건 SpringBootApplication 실행 시 : 동일 @Bean 명일 경우 NoUniqueBeanDefinitionException 발생 SpringApplication 실행 시 : 동일 @Bean 명이여도 overriding 해버림 - 위험 단위 Test 실행 시 : 동일 @Bean 명이여도 overriding 해버림 - 위험 Spring Test 실행 시 : 동일 @Bean..

spring/spring 핵심

스프링 핵심 원리 이해 4 - 싱글톤 컨테이너

발생 원인 순수 자바 컨테이너로 만들었던 AppConfig를 웹 애플리케이션으로 직접 사용하면 요청할 때마다 설정파일 내의 객체를 새로 생성하고 삭제하는 과정을 거친다. 메모리 낭비가 심하다. @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer(){ AppConfig appConfig = new AppConfig(); MemberService memberService1 = appconfig.memberService(); MemberService memberService2 = appconfig.memberService(); assertThat(memberService1).isNotSameAs(memberService2); } 해결방안 해당 객체를 1개..

spring/spring 핵심

스프링 핵심 원리 이해 3 - 스프링 컨테이너와 스프링 빈

0. 흐름 AppConfig 변화 AppConfig의 return type이 구체 클래스여도 작동에는 문제가 없지만 설정파일에서는 역할과 구현이 분리가 되어야 한눈에 파악이 쉽기 때문에 스프링 추상클래스로 나타낸다. @Configuration public class AppConfig{ // service @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } @Bean public Orderservice orderService(){ return new OrderServiceImpl(memberRepository(), discoutnPolicy()) } // 객체 @Bean public M..

spring/spring 핵심

스프링 핵심 원리 이해 0 - 객체지향 설계와 스프링

1. EJB 단점 : 웹 관련 기술과 ORM의 기술을 제공하지만 너무 복잡하고 EJB에 의존적 대안책 : 스프링(웹 관련 기술), 하이버네이트(ORM 기술 == JPA) 스프링 : EJB 없이도 자바로만 가지고 충분히 고품질의 확장 가능한 애플리케이션 개발할 수 있음을 보여줌. EJB 컨테이너 대체 단순함 현재 표준 기술 하이버네이트(JPA) : 하이버네이트 JPA의 새로운 표준 정의 EJB EntityBean 기술 대체 JPA 표준 정의 EJB EntityBean -> 하이버네이트 -> JPA(인터페이스) JPA의 90%는 하이버네이트로 구현 2. Spring 하나가 아닌 여러기능들의 모음 2.1. Spring Framework Spring의 여러 기능들 중 핵심 핵심 기술 : 스프링 DI 컨테이너(b..

Algorithm/프로그래머스 문제

lv1. 다시 볼 문제들

서울에서 김서방 찾기 핸드폰 번호 가리기 없는 숫자 더하기

Algorithm/프로그래머스 문제

lv1. 두 정수 사이의 합

1. 문제 문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 입출력 예 a b return 3 5 12 3 3 3 5 3 12 2. 내 풀이 import java.util.stream.LongStream; class Solution { public long solution(int a, int b) { if (a == b) return a; else if..

Algorithm/프로그래머스 문제

lv1. 정수 내림차순으로 배치하기

1. 문제 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.제한 조건 n은 1이상 8000000000 이하인 자연수입니다. 입출력 예 n return 118372 873211 2. 내 풀이 import java.util.*; class Solution { public long solution(long n) { long answer = 0; if (n 8000000000L) return -99999L; List list = new ArrayList(); while (n != 0) { list.add(n % 10); n /= 10; } Colle..

wooweee
코아일체