전체 글

JAVA
운영체제란? 컴퓨터 시스템의 구성 하드웨어: CPU, 메모리, 저장장치, 입출력장치, 네트워크 장치 등 소프트웨어: 브라우저, PDF 뷰어, PPT, 컴파일러 등 응용 소프트웨어 & 시스템 소프트웨어 응용 소프트웨어: 우리가 직접 다룰 수 있는 부분들 ex) 브라우저, PDF 뷰어, PPT 등 시스템 소프트웨어: 응용 소프트웨어와 하드웨어의 매개체 역할 하드웨어를 관리해주는 역할 ex) 컴파일러, 레지스터, 윈도우즈, 맥 OS, 리눅스 등 운영체제 대표적인 시스템 소프트웨어 컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 프로그램들의 모음 운영체제의 역할 컴퓨터 시스템의 자원 관리 자원: 하드웨어 자원, 소프트웨어 자원, 데이터 예: 저장장치에서 데이터 읽어 오기, 키보..
관계형 모델의 개념 릴레이션의 특성 데이터베이스 모델링 과정 개념적 데이터 모델링의 결과 논리적 데이터 모델링 단계 DBMS에서 사용하는 데이터 모델에 맞추어 데이터를 표현하는 과정 데이터 정의 언어로 기술된 개념 스키마 생성 관계형 모델(relational model) 1969년 에드가 F. 코드에 의해 제안 릴레이션(relation)으로 데이터를 표현하는 모델 데이터 표현이 단순하고 직관적 구조화 모델 현재 대다수 DBMS의 기초 -> 관계형 모델을 사용하는 관계형 DBMS(RDBMS) ex) Oracle, DB2, PostgreSQL, MySQL, MSSQL 등 릴레이션의 구성 칼럼 값은 두 개의 메타 데이터(컴퓨터 과학과 + 전화번호)가 적용된 값 릴레이션의 특징 레코드의 유일성: 중복된 레코드의..
데이터베이스모델링의 이해 데이터베이스를 사용하기 전에 데이터베이스 사용에 대한 계획을 세워야 한다! -> 한정적 자원의 효율성 극대화 어떤 사항을 고려해야 할까? 데이터관리의 필요 비즈니스적 관점: 어떤 데이터를 저장해야 하는가? 컴퓨터 프로그래머 관점: 어떻게 데이터를 저장해야 하는가? 데이터베이스 시스템 구현 과정 데이터베이스 모델링의 개념 데이터의 의미를 파악하고 데이터와 관여하는 업무 프로세스를 개념적으로 정의하고 분석하는 작업 모델링: 디자인, 설계, 표준화 모델: 표준화된 기본 틀 데이터 모델 사용할 데이터를 선별하여 데이터베이스에 체계적으로 구조화하여 저장·사용할 방법이 필요 데이터 모델 ▶ 의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념들의 집합 데이터 모델링 ▶ 실세계..
데이터 베이스의 역할 데이터 관리의 필요 대량의 데이터를 저장 및 관리하고 필요한 데이터를 신속히 검색할 수 있도록 보조하는 장치 데이터 관리의 역사 파일 처리 시스템 (전통적 데이터 관리 방식) 1. 데이터베이스가 개발되기 전에 데이터 관리에 사용 2. 업무 별 애플리케이션이 개별 데이터를 데이터 파일에 저장・관리하는 시스템 3. 발생 가능한 문제 데이터 종속의 문제 저장된 데이터가 특정 H/W에서 또는 사용자 및 S/W만 사용될 있도록 제한되는 문제 물리적 데이터 종속 논리적 데이터 종속 데이터 중복의 문제 동일한 사항에 대한 중복 데이터는 일관성, 보안성, 경제성 측면에서 문제 발생 일관성: 한 사실에 대해 한 개의 데이터 값을 유지 보안성: 같은 데이터에 같은 수준의 보안 유지 경제성: 데이터에 ..
다양한 의존관계 주입 방법 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 생성자 주입 이름 그대로 생성자를 통해서 의존 관계를 주입받는 방법이다. 지금까지 우리가 진행했던 방법이 바로 생성자 주입이다. 생성자 호출시점에 딱 1번만 호출되는 것이 보장된다. 불변, 필수 의존관계에 사용 @Component public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberReposi..
컴포넌트 스캔과 의존관계 자동 주입 시작하기 지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등 록할 스프링 빈을 나열했다. 예제에서는 몇개가 안되었지만, 이렇게 등록해야 할 스프링 빈이 수십, 수백 개가 되면 일일이 등록하기도 귀찮고, 설정 정보도 커지고, 누락하는 문제도 발생한다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 또 의존관계도 자동으로 주입하는 @Autowired 라는 기능도 제공한다. @Configuration @ComponentScan( excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes =..
웹 애플리케이션과 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도 얼마든지 개발할 수 있다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. public class SingletonTest { @Test @DisplayName("스프링이 없는 순수한 DI 컨테이너") void pureContainer() { AppConfig appConfig = new AppConfig(); // 1. 조회: 호출할 때마다 객체를 생성 MemberService memberService1 = appConfig.memberService(); // 2. 조회: 호출할 때마다 객체를 생성 MemberSe..
스프링 컨테이너 생성 // 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext: 스프링 컨테이너 (인터페이스) 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 직전에 AppConfig를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이 다. 스프링 컨테이너의 생성 과정 1. 스프링 컨테이너 생성 new AnnotationConfigApplicationContext(AppConfig.class) 스프링 컨테이너를 생성할 때는 구성 정보를 지정해..
뱅어돔
테크뽀자ㄲ