본문 바로가기

공부 자료

(281)
[Spring Core] PSA (Portable Service Abstraction) PSA(Portable Service Abstraction)란? : '일관된 서비스 추상화'로 클라이언트가 추상화된 상위 클래스를 일관되게 바라보며 하위 클래스의 기능을 사용하는 것 : 환경 변화에 상관없이 일관된 방식으로 제공하는 추상화 구조로 인터페이스에서 추상 메서드를 만드는 것 처럼 추상화된 서비스를 통해 환경이 바뀌어도 활용할 수 있어야 하며, DI를 활용해 사용할 객체만 바꿔주도록 구현이 가능함 추가개념) * 추상화(Abstraction) : 클래스의 본질적인 특성만을 추출해서 일반화 하는 것 : 대표적 방법은 추상 클래스와 인터페이스가 존재 * 추상화 사용 이유 : 상위 클래스에서 일반화 시켜놓은 것을 구체화시켜서 사용할 수 있음 (사용하면서 구체화 클래스의 객체를 자신의 타입에 할당하는 것..
[Spring Core] POJO(Plain Old Java Object) POJO(Plain Old Java Object)란? : PO - 순수한 객체를 의미 : JO - 객체지향 프로그래밍 : Java로 생성하는 순수한 객체를 말하며 POJO를 이용해서 프로그래밍 코드를 작성하는 것을 의미 : 객체지향의 원리에 충실하며 다른 환경과 기술에 종속되지 않고, 필요에 따라서 재활용이 가능한 자바 오브젝트 규칙 1. Java나 Java 스텍에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 함 : 자바 언어외 꼭 필요한 API 외에는 종속되지 않음 public class User { private String userName; private String id; private String password; public String getUserName() { return u..
[Spring Core] Spring Framework 소개 [Spring Framework] Spring Framework : 웹 애플리케이션 개발을 위한 여러 Framework들 중 하나 Spring Framework 장점 1. POJO(Plan Old Java Object)기반의 구성 2. DI(Dependency Injection) 지원 3. AOP(Aspect Oriented Programming, 관점지향 프로그래밍) 지원 * 위의 3가지는 게시물 참고 4. Java 언어를 사용함으로써 얻는 장점 : 정적 타입의 언어로서 변수의 타입,메서드의 입력과 출력이 어떤 타입을 가져야 하는지를 강제하기 때문에 여러 사람이 함께 작업하거나 다른 사람의 코드 혹은 내 코드를 수정/보완할 경우 용이하며, 웹 서버 구축에 있어 런타임에 발생하는 오류를 사전에 방지할 수..
[Spring Core] Framework & Library [Framework] Framework란? : 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것 : 애플리케이션을 만들기 위한 틀 혹은 구조를 제공하는 것 추가설명) java에서 Framework의 의미를 보았을 때 Collections Framework를 말할 수 있음 Java 클래스 중 기본적인 뼈대로만 구성이 되어있는 것 = 추상메서드로만 정의된 인터페이스(interface) Collection은 Map/Set/List 같은 인터페이스와 그 인터페이스를 구현한 구현체들의 집합 결론적으로 Framework는 프로그래밍 상에서 프로그래밍을 하기 위한 틀이나 구조를 제공한다고 말할 수 있음 장점 1. 효율적으로 코드를 작성할 수 있음 :..
[Spring Core] IoC (Inversion of Control) IoC(Inversion of Control)란? : '애플리케이션 흐름의 주도권을 Spring이 갖는다'를 의미(제어의 역전) : 개발자가 가지던 제어권을 외부에서 갖는다는 것을 의미(예를들면 생성자명이 변경될 경우 개발자가 일일이 변경이 필요한 것은 개발자가 제어권을 가진다는 것, 이를 개발자가 고치는 것이 아닌 외부에서 자동으로 고쳐주는 것을 외부에서 제어권을 가진다고 함. 이 때 대표적으로 외부에서 제어권을 가지도록 하게 되는 것이 DI) : Library는 흐름 주도권이 개발자에게, Framework는 흐름 주도권이 Framewok에 존재한다고 했을 때 애플리케이션 흐름의 주도권이 뒤바뀐 것을 말함 Ex) Java 콘솔 애플리케이션 일반적인 제어권 public class Main { public..
[데이터베이스] SQL 명령어 정리 1. Database 생성 CREATE DATABASE 데이터베이스명 2. Database 삭제 DROP DATABASE 데이터베이스명 DELETE DATABASE 데이터베이스명 3. Table 생성 CREATE TABLE 테이블명( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL ); //NOT NULL : 공백을 허용하지 않음 //AUTO_INCREMENT : 자료형이 INT 형일때 적용이 가능하며 데이터가 많아질때마다 1씩 증가 4. Table 데이터 추가 INSERT INTO 테이블명 (칼럼1, 칼럼1, 칼럼3 ,,,) VALUES (값1, 값2, 값3 ,,,) 5. Table 데이터 확인 SELECT * FROM 테이..
[데이터베이스] 테이블 관계 종류 1. 1:1 관계 : 하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우 Ex. * 모든 예시에서 레코드 이름 외 작성 생략함 CREAT TABLE User { user_id int, name varcahr, phone_id int } CREAT TABLE Phonebook { phone_id int, phone_number int } phone_id는 외래키(foreign key)로써, Phonebook 테이블의 phone_id와 연결되어 있다고 보았을 때 각 전화번호가 단 한명의 유저와 연결되어 있고, 그 반대도 동일하다면 1:1 관계를 가진다. 2. 1:N 관계 (관계형 데이터베이스에서 가장 많이 사용) : 하나의 레코드가 서로 다른 여러개의 레코드와 연결된 경우 Ex. CREAT TABLE..
[데이터베이스] 데이터베이스 정규화/비정규화 [데이터베이스 정규화] 정규화(Normalization) : 중복을 최소화하게 데이터를 구조화하는 프로세스 : 테이블 간에 중복된 데이터를 허용하지 않아 무결성(integrity)를 유지할 수 있으며, DB 저장 용량 또한 줄일 수 있음 Data Redundancy (데이터 중복) : 데이터 중복은 실제 데이터의 동일한 복사본이나 부분적인 복사본을 의미 : 중복성은 데이터 복구 시 수월할 수 있지만, 내에서 몇가지 문제점(일관된 자료 처리의 어려움, 저장 공간 낭비, 데이터 효율성 감소)을 지님 Data Integrity (데이터 무결성) : 데이터의 수명 주기 동안 정확성과 일관성을 유지하는 것을 의미 (즉, 데이터가 오염되지 않고 입력된 그대로 데이터를 사용할 수 있음) Anomaly(데이터 이상 현..