본문 바로가기

ComputerScience28

[Database] 일반상식 1. DBMS DBMS는 DataBaseManagementSystem의 약자로 사용자가 데이터에 관한 정보를 가능한 효율적이고 효과적으로 구성하는 것으로 복원 및 검색을 할 수 있도록 하는 응용프로그램의 모음이다. 즉, 데이터의 집합인 데이터 베이스를 더 체계적으로 관리하고 이용할 수 있게 해주는 소프트웨어 시스템을 말한다. 1-1) RDBMS RDBMS의 R은 Relational의 약자로 관계형 데이터 모델에 기초를 둔 RDB를 생성하고 수정 하고 관리 하는 소프트웨어이다. 테이블 끼리 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다. 정규화를 통해 데이터의 중복성을 최소화 하며 트랜잭션을 수행하는 것이 더 쉽다. 데이터의 원자성, 일관성, 격리 및 내구성을 유.. 2021. 6. 23.
[Database] InnoDB MySql을 사용할 때 아무 생각없이 사용하는 InnoDB에 대해서 알아보려고 한다. 1. InnoDB 장점 MySQL의 대표적인 데이터베이스 엔진이다. 트랜잭션-세이프 스토리지 엔진이다. commit, rollback, 장애복그 row-level locking, 외래키 등 많은 기능을 지원한다. 다수의 사용자, 동시접속 퍼포먼스를 제공한다. 높은 퍼포먼스가 필요한 대용량 사이트에 적합하다 단점 Deadlock 발생 NODE간 데이터 체크로 인해, Deadlock 발생 가능성이 존재 많은 자원 소모 대용량 처리를 하게 된다면, 순간적으로 많은 자원을 소모한다. 데이터 복구의 어려움 단순하게 파일 백업으로 복구를 하는게 아니라, 특정한 방법을 사용하여 복구해야한다. 2021. 6. 22.
[프로그래밍언어] 자바(2) 언어적 부분 1. equals vs == 자바에서 대표적인 차이의 개념으로 어떤것을 비교하는지에 대한 내용이다. 1) equals 객체 자체를 비교하는 방법으로 각 클래스에 Overriding되어 있는 메서드이다. 기본은 ==로 되어있어 비교하며 String의 경우 문자열을 비교하여 같은 문자열인지 확인한다. 즉, 같은 문자열일 경우 true를 다른 문자열일 경우 false를 반환한다. public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String aString = (String)anObject; if (!COMPACT_STRINGS || this.coder == .. 2021. 6. 21.
[SoftwareEngineering] 3. 디자인 패턴 - 행위 3. 행위(Beavioral) 패턴 1) 전략 패턴 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화 되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 패턴이다. 이 것만 읽으면 너무 추상적인 말이라 이해가 잘 안갈 수 있다. 코드를 보고 이해한 후 이 말이 무슨 뜻인지 아래에서 다시한번 다뤄보겠다. 예제 코드를 보기전에 구성을 먼저 보고 가자 실선은 interface 사용되는 클래스를 표시한 것이다. 즉, 여기서는 Robot이 Strategy들을 가지고 있으며 어떤 Strategy의 구현체를 사용하는지에 따라 전략을 바꾸는 것이다. 또한, 어떤 로봇인지에 따라 어떤 전략을 쓸지 setter로 지정해 주는 코드를 작성할 것이다. 로봇( 전략.. 2021. 6. 6.
[SoftwareEngineering] 2. 디자인 패턴 - 구조 2. 구조(Structural) 패턴 1) 어댑터 패턴 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환한다. 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 즉, 호환성 문제를 해결하기 인터페이스를 사용하여 같이 쓸 수 없는 클래스들을 연결해서 사용하는 것이다. Dog(interface) - Poodle(class) public interface Dog{ public void walk(); public void bark(); } public class Pooddle implements Dog{ @Override public void bark() { System.out.println("멍멍멍"); } @Override pub.. 2021. 6. 5.
[SoftwareEngineering] 1. 디자인 패턴 - 생성 ※ 디자인 패턴 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 재 발생 했을 때 재사용 할 수 있는 해결책 "Don't reinvent the Wheel(바퀴를 다시 발명하지 마라) - 이미 만들어져 잘 되는 것을 처음부터 다시 만들 필요가 없다. - GOF(Gang Of Four)의 디자인 패턴 GOF 디자인 패턴은 위와 같이 23개가 있다. 이 포스트에서는 자주 쓰이는 일부의 패턴들만을 살펴 보겠다. 1. 생성(Creational) 패턴 1) 싱글턴 패턴 어떤 클래스가 유일하게 1개만 존재해야할 때 사용한다. 스프링에서 Bean을 만들 때 기본설정이 싱글톤이다. @Scope를 사용하여 변경할 수 있다. - 방법 class Singletone{ static private Sing.. 2021. 6. 5.
[DataBase] 7. ORM 1. ORM(Object Relational Mapping) 객체와 관계형 DB를 자동으로 매핑해주는 것으로 객체와 관계(RDB)를 매핑해 주는 것을 말한다. 객체지향은 클래스를 관계형 DB는 테이블을 사용한다. 객체와 관계형 DB의 불일치가 존재하는데 이 때 ORM을 통해 객체간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 즉, ORM을 사용하면 SQL문을 작성할 필요없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있게된다. 1) 장점 객체지향적인 코드 ORM을 이용하면 SQL문이 아닌 클래스의 메서드를 통해 데이터베이스를 조작할 수 있어, 개발자가 객체 모델만 이용하여 프로그래밍 하는 데 집중 할 수 있다. SQL문을 사용하며 같이 필요한 선언문, 할당, 종료 등 부수적 코드.. 2021. 6. 4.
[Web] 2. REST/REST API/RESTful 1. REST REST란 REpresentational State Transfer의 약자이다. 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. 즉, 자원의 표현에 의한 상태전달. 월드 와이드 웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식 1) REST 구성 자원(Resource) - URI 행위(Verb) - HTTP Method; 표현(Representation) 2) REST API의 특징 Uniform Interface URI로 지정한 리소스에 대한 조작이 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일 HTTP 표준 프로토콜에 따르는 모든 플랫폼(모바일, PC..)에서 사용가능함(특정언어에 종속X) .. 2021. 6. 4.