분류 전체보기
-
(스프링 기본) 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() 사용해도 나온다. 아프가니스..
-
(Python) - 2 파이썬 교육개발/Python 2024. 8. 23. 17:51
■ 내장 라이브러리 * webbrowser * timetime.sleep(1) : 1초 후 실행 ■ 외부 라이브러리 * faker faker 는 가짜 데이터를 만들어주는데 유용하다. ■ 탭 문자를 공백 문자 4개로 만드는 py 모듈 만들기 해당 파일을 복사해서 다음과 같이 파이썬 파일로 만들고 저장해준다. 다음 같은 명령어를 준다. 여기서 src 가 sys.argv[1] 은 a.txt 를 의미한다마찬가지로 dst 는 sys.argv[2] 은 b.txt 를 의미한다 다음과 같이 tab 이 조정된 파일이 만들어진다. ■ vs code 로 실행해보기 해당 방법은 내가 원하는 디렉토리로 바로 코드를 만들 수 있도록 연결해주는 유용한 명령어다 vs 코드로 python 실행도 shift + enter 누..