개발

개발/CS

[CS] 좋은 객체 지향 설계의 5대 원칙: SOLID

객체지향 5대 원칙이란, SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙)을 말하며, 앞자를 따서 SOILD 원칙이라고 부른다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 소프트웨어를 만드는데 이 원칙들을 적용할 수 있다. SRP (Single Responsibility Principle): 단일 책임 원칙 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임만을 가져야 한다. 한 클래스는 하나의 책임만을 가져야 합니다. 이때 하나의 책임을 구분하는 기준은 변경입니다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것으로 볼 수 있습니다. 여기서 책임이란, '기능' 정도의 의미로 해..

개발/CS

[CS] OOP(객체 지향 프로그래밍)

OOP (Object-Oriented Programming) 애플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍 하는 것을 말합니다. OOP는 객체의 관점에서 프로그래밍 하는 것을 의미한다. C언어는 절차 지향 프로그래밍인데, 절차 지향 프로그래밍은 프로세스가 함수 단위로 순서대로 진행되는 것을 말한다. OOP는 절차지향에 비해서 사람의 사고방식과 더 가깝다. OOP는 객체들의 유기적인 관계를 통해서 프로세스가 진행된다. 애플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍 하는 것을 말한다. OOP는 객체지향 원칙에 따라 관심사가 같은 데이터를 한곳에 모아 분리하고 낮은 결합도를 갖게하여 독립적이고 유연한 모듈로 캡슐화를 하는 것..

개발/개발지식

[생성 패턴] 싱글톤 패턴(Singleton pattern)

싱글톤 패턴은 객체지향 디자인 패턴에서 가장 유명한 패턴 중 하나로, 디자인 패턴을 따로 공부하지 않으신 분들도 익히 알고 있는 패턴입니다. 싱글톤은 생성 패턴(Creational Pattern) 중 하나이다. 생성 패턴은 인스턴스를 만드는 절차를 추상화하는 패턴입니다. 생성 패턴에 속하는 패턴들은 객체를 생성, 합성하는 방법이나 객체의 표현 방법을 시스템과 분리해줍니다. 생성 패턴은 시스템이 상속(inheritance) 보다 복합(composite) 방법을 사용하는 방향으로 진화되어 가면서 더 중요해지고 있습니다. 생성 패턴에서는 중요한 이슈가 두 가지 있습니다. 생성 패턴은 시스템이 어떤 Concrete Class를 사용하는지에 대한 정보를 캡슐화합니다. 생성 패턴은 이들 클래스의 인스턴스들이 어떻게..

개발/Java

[JAVA] String 과 String Buffer, StringBuilder 의 차이

자바에서는 대표적으로 문자열을 다루는 자료형 클래스로 String, StringBuffer, StringBuilder 라는 3가지 자료형을 지원한다. 위 3가지 클래스 자료형은 모두 문자열을 다루는데 있어 공통적으로 사용되지만, 사용 목적에 따라 쓰임새가 많이 달라지게 된다. 1. String String - immutable class(불변 클래스) - + 연산이나 concat() 메소드로 문자열을 이어붙일수 있다. - 문자열 간 + 연산이 있는 경우 자바에서 자동으로 새로운 String 객체(인스턴스)를 생성한다, 따라서 문자열을 많이 결합하면 결합할수록 공간의 낭비뿐만 아니라 속도 또한 매우 느려지게 된다는 단점이 있다 - "Hello" , " " , "World" 총 3개의 String 자료형 객..

개발/DB

[DB] rdb(관계형 데이터 베이스)

RDB / NoSQL RDB Relational Database RDB는 데이터베이스를 이루는 객체들의 관계를 통해서 데이터를 저장하는 데이터베이스 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체이러한 관계를 나타내기 위해 외래 키(foreign key)라는 것을 사용 이러한 테이블간의 관계에서 외래 키를 이용한 테이블 간 Join이 가능하다는 게 가장 큰 특징입니다. SQL을 사용해 데이터의 저장, 질의, 수정, 삭제를 할 수 있으며 데이터를 효율적으로 보관하는 것을 목적으로 하고 구조화가 중요합니다. 장점으로는 명확한 데이터 구조를 보장하고, 중복을 피할 수 있습니다. NoSQL Not Only S..

개발/개발지식

REST API

REST API 란 REST( Representational State Transfer )의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다. RESTFUL 이란 REST 의 원리를 따르는 시스템을 의미합니다. 하지만 REST 를 사용했다 하여 모두가 RESTFUL 한 것은 아닙니다. REST API 의 가장 큰 특징은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능한 것 입니다. URI 는 정보의 자원만 표현해야 하며, 자원의 행위는 HTTP Method 에 명시한다는 것입니다. REST란 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GE..

개발/개발지식

디자인패턴

객체지향 소프트웨어를 '잘' 설계한다는 것은 쉬운 일이 아닙니다.게다가, 재사용할 수 있는 객체지향 소프트웨어를 만드는 것은 더 힘듭니다.설계를 할 때에는 지금 당장 갖고 있는 문제를 해결할 수 있어야 하지만, 나중에 생길 수 있는 문제나 추가된 요구 사항들도 수용할 수 있도록 일반적이고 포괄적이어야 합니다.이를 위해 설계할 때 고려사항으로 SOLID 원칙 등 객체지향적 소프트웨어 설계 방법론이 있고, 현업에서는 이에 따라 개발하기 위해 노력하고 있습니다. 개발의 경험이 쌓이다 보면 자신들이 전에 사용했던 코드와 유사한 기능을 구현해야 해서 이전의 코드를 들여다보는 경험을 종종 하게 됩니다. 그러다 전에 사용했던 해결책을 그대로 반복해서 사용하기도 하고, 변형해서 쓰기도 하고, 혹은 상황에 맞지 않다고 ..

개발/Java

[JAVA] 정규표현식

정규 표현식 설명 ^[0-9]*$ 숫자 ^[a-zA-Z]*$ 영문자 ^[가-힣]*$ 한글 \\w+@\\w+\\.\\w+(\\.\\w+)? E-Mail ^\d{2,3}-\d{3,4}-\d{4}$ 전화번호 ^01(?:0 1 \d{6} \- [1-4]\d{6} 주민등록번호 ^\d{3}-\d{2}$ 우편번호 참고 사이트: 정규표현식 테스트 사이트 모음 총정리 자바 정규 표현식 (Pattern, Matcher) 사용법 & 예제 문자열자르기(split함수) String.match, String.replaceAll, String.replaceFirst, String.split

Developer.do.de.gee
'개발' 카테고리의 글 목록 (11 Page)