전체 글
-
(스프링 기본) 9 - 스프링 빈 조회카테고리 없음 2024. 10. 9. 15:23
■ 기본스프링 컨테이너에서 스프링 빈을 찾는 가장 기본적인 방법은 두 가지가 있다. 1. ac.getBean(빈이름, 빈타입)2. ac.getBean(빈타입) 만약 조회하는 스프링 빈이 없을 경우 NoSuchBeanDefinitionException 이 발생한다. AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);@Test@DisplayName("빈 이름으로 조회")void findBeanByName() { MemberService memberService = ac.getBean("memberService", MemberService.class); assertThat(m..
-
(스프링 기본) 8 - 컨테이너에 등록된 모든 빈 조회개발/Spring 2024. 10. 9. 13:27
이전 시간에 컨테이너에 등록한 빈을 Test 코드에서 조회해본다. AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); 컨테이너에 등록된 모든 Bean 을 조회하기 위해서 AnnotationConfigApplicationContext 컨테이너를 만든다.참고로 해당 컨테이너는 ApplicationContext 인터페이스 구현체로 하나의 컨테이너라 할 수 있다. @Test@DisplayName("모든 빈 출력하기")void findAllBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (Strin..
-
(스프링 기본) 7 - 스프링 컨테이너 생성개발/Spring 2024. 10. 7. 22:39
ApplicationContext 는 스프링 컨테이너고 인터페이스이다. 이러한 인터페이스를 구현한 것 중의 하나가 AnnotationConfigApplicationContext 이다. 스프링 컨테이너는 XML 기반으로 만들 수도 있고, 다음과 같이 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 다음 코드는 애노테이션 기반의 자바 설정 클래스로 만든 것이다. ※ 최근에는 XML 기반으로 만들지는 않는다. 파라미터로는 AppConfig.class 를 넣어준다. AnnotationConfigApplicationContext 은 ..
-
(스프링 기본) 6 - spring 으로 전환하기개발/Spring 2024. 10. 7. 22:05
@Configuration : 구성정보를 가지고 있는 어노테이션@Bean : spring 컨테이너에 등록이 됨 ApplicationContext : 스프링은 ApplicationContext 로부터 시작한다. = spring 컨테이너이다.따라서 이게 @Bean으로 등록한 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에서 관리하게 된다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라 한다. 즉, 여기서는 discountPolicy 라는 메서드가 호출되어 RateDiscountPolicy 객체가 스프링 컨테이너에 관리되고,이러한 객체를 스프링 빈이라고 하는 것이다. ApplicationContext applicationContext = new AnnotationConfigApplicat..
-
(스프링 기본) 5 - 객체 지향 설계와 스프링개발/Spring 2024. 10. 2. 23:00
■ 스프링에서 왜 객체 지향 이야기가 나올까?- 스프링은 아래 기술로 다형성 + OCP, DIP 를 가능하게 지원 > DI(Dependency Injection) : 의존관계, 의존성 주입 > DI 컨테이너 제공 : 자바 객체를 컨테이너에 넣고 그 안에서 의존관계를 주입시킴- 클라이언트 코드의 변경 없이 기능 확장- 쉽게 부품 교체하든 개발 가능 ■ 스프링 없었을 때- 좋은 객체 개발을 하려고 OCP, DIP 원칙 지키려고 하다 보니 할 일이 많아짐 > 프레임워크로 만들어버림- 순수 자바 개발을 하면, 결국 스프링 프레임 워크를 만들게 된다. (정확히는 DI 컨테이너) ■ 정리- 모든 설계에 역할과 구현 분리하자ex) 자동차, 공연- 애플리케이션 설계도 공연을 설계 하듯이 배역만 만들어두고, 배우..
-
(스프링 기본) 4 - 좋은 객체 지향 설계 5가지(SOLID)개발/Spring 2024. 10. 2. 22:50
■ SOLID란?: 클린 코드로 유명한 로버트 마틴이 말한 좋은 객체 지향 설계의 5가지 원칙 1. SRP(Single responsibility principle) 단일 책임 원칙- 한 클래스는 하나의 책임만 가져야 한다.- 중요한 기준은 변경으로, 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것ex) UI 변경, 객체의 생성과 사용을 분리 2. OCP(Open/closed principle) 개방-폐쇄 원칙- 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 함- 다형성을 활용- 역할과 구현의 분리ex1) 자동차 종류를 k3, 아반떼로 늘려도 자동차라는 역할은 바뀌지 않아 운전자는 차를 움직일 수 있음ex2) 연극의 로미오라는 역할은 다른 사람으로 바뀌어도 계속 사용 가능..
-
(Python) - 4 파이썬 교육개발/Python 2024. 8. 27. 17:43
■ wsl (윈도우에서 리눅스 환경 이용하기) Linux용 Windows 하위 시스템 wsl --list --online : 기본 배포와 다른 유효한 배포 목록 보기wsl --install -d Ubuntu : 우분투 설치하기 ※ 톰캣도 Linux 환경에서 좀 더 잘 돌아간다. ■ 아이리스 sklearn 사용해보기 sklearn 에 있는 기본 iris 데이터 불러오기 데이터는 우리가 분석할 sepal nepal 데이터값이 들어가 있고,target에는 분류값이 들어가 있다. 따라서 분석값은 X 로, 결과값은 y 로 저장해준다. 여기서 우리가 훈련시킬 데이터는 X_train 데이터 그에 해당하는 결과값은 y_train 데이터우리가 테스트 후 예측을 잘 했는지 비교할 데이터는 X_test 데..
-
(Python) - 3 파이썬 교육개발/Python 2024. 8. 26. 12:51
■ numpy 지난 내용 복습하기 ■ pandas 지난 내용 복습하기 df.index : index 정보 나타내기※ 판다스에서 나오는 object 는 객체가 아니라 string 을 의미한다. df 변수에 다시 저장하거나 inplace=True 를 하면 덮어써서 df 가 나온다. ■ plotly axis = 0(행) 아래 방향axis = 1(열) 옆 방향 많이 쓰는 매서드 ■ 주피터 노트로 실습하기 pip.list : 설치된 모듈 보기 findstr + 모듈명 : 모듈 찾아보기 country 컬럼에 해당하는 내용 출력하기 아프가니스탄만 있는지 True False 로 나옴 두 개의 값 있는지 확인하기isin() 함수 또는 18번행 코드 df.query() 사용해도 나온다. 아프가니스..