본문 바로가기

728x90
반응형

Programming

(10)
[OOP] 객체지향 설계원칙 - SOLID 원칙 SRP(단일 책임 원칙) OCP(개방-폐쇄 원칙) LSP(리스코프 치환 원칙) ISP(인터페이스 분리 원칙) DIP(의존 역전 원칙) SOLID는 객체 지향 프로그래밍에서 유용한 디자인 원칙의 묶음을 나타낸다. 이들 원칙은 소프트웨어의 설계, 개발 및 유지 보수를 용이하게 하기 위해 사용된다. ⛵️ 단일 책임 원칙 (SRP: Single Responsibility Principle) 클래스는 하나의 책임만 가져야한다. 즉, 클래스는 하나의 기능을 수행하고, 그 기능을 변경할 이유가 하나여야 한다. 예를 들어, 고객 정보를 데이터베이스에 저장하고, 이메일로 고객에게 안내 메일을 보내는 클래스가 있다고 가정해보면, 이 클래스는 두 가지 기능을 수행하므로 SRP 원칙을 위반한다. 이 경우, 이 두 가지 기능을..
[OOP] 객체지향 생활 체조 원칙 9가지 보호되어 있는 글입니다.
[GitHub] Mac 터미널 GitHub Repository 연동 IDE에서 직접 Git을 사용하는 방법이 아닌 터미널을 통해 git 명령어를 사용하고 GitHub에 연동하기 로컬 디렉토리와 Git Hub 레포지토리 연동 1. 연동할 본인 Git Repository 주소 복사 2. 터미널을 이용해 Git Repository를 관리할 폴더로 이동 3. 레포지토리(원격저장소) 연결 : git init 4. main 브랜치로 이동 : git checkout 'main' 작업 후 레포지토리에 파일 업로드 1. txt 파일 생성 2. 현 디렉토리 모든 파일 staging 추가 : git add . 3. 현재 git 상태 확인 : git status 4. 커밋 : git commit -m '커밋 메세지' 5. git hub 최초 업로드 : git push -u origin mai..
CleanCode - 깨끗한 코드 클린코드에서는 깨끗한 코드를 작성하기 위해서는 나쁜 코드를 작성해서는 안 된다고 설명하고 있다. 프로그래머라면 누구나 나쁜 코드로 고생한 경험이 있을 것이다. 그렇다면 어째서 나쁜 코드를 작성한 것일까. 제대로 짤 시간이 없다고 생각해서, 코드를 다듬느라 시간을 보냈다가 상사에게 욕 먹을까봐, 다른 업무가 너무 밀려 후딱 해치우고 밀린 업무로 넘어가려고 .. 등등 모두가 겪어본 상황이다. 우리는 자신이 짠 쓰레기 코드를 쳐다보며 나중에 손보겠다고 생각한 경험이 있다. 우리 모두는 대충 짠 프로그램이 돌아간다는 사실에 안도감을 느끼며 그래도 안 돌아가는 프로그램보다 돌아가는 쓰레기가 좋다고 스스로를 위로한 경험이 있다. 다시 돌아와 나중에 정리하겠다고 다짐했었다. 물론 그때 그 시절 우리는 르블랑의 법칙을..
intellij mac 단축키 보호되어 있는 글입니다.
[MQ] rabbitMQ rebbitMQ는 AMQP를 따르는 비동기 방식의 오픈소스 메시지 브로커로써 메시지 큐를 이용해 시스템의 부하를 줄이고 성능을 높이기 위한 용도로 사용한다. 메세지를 많은 사용자에게 전달하거나, 요청에 대한 처리 시간이 길 때, 요청을 다른 API에게 위임하고 빠른 응답을 할 때 주로 사용한다. 기존 애플리케이션의 문제점 - 서버가 응답할 때 까지 기다려야 한다. - db 장애시 애플리케이션에도 장애가 발생한다. - Real-Time 어플리케이션 구현이 어렵다 AMQP : 인스턴스가 메시지 데이터를 서로 교환하기 위한 프로토콜 rabbitQM 사용시 장점 - 애플리케이션의 의존성을 제거 할 수 있다. - 느슨하게 결합된 설계가 가능하다. - 데이터베이스 성능에 영향을 받지 않는다. - 애플리케이션 코드를..
[programming] 프로그래밍 언어 JAVA와 C#의 차이 JAVA와 C#은 둘다 자신만의 '속성'과 '기능'을 정의한 클래스를 가지고 상호작용하는 개념의 객체지향 언어(OOP)이다. 이런 두 객체지향 언어의 차이점을 알아보자. 1. JAVA와 C#의 관계 마이크로소프트(Microsoft)사에서 제작한 C#은 Java와 C++의 아쉬운 점을 극복하기 위해 닷넷 프레임워크의 한 부분으로 만들어졌다.하지만 C#이 Java의 여러 단점들을 극복했음에도 불구하고 이미 Java로 개발되어 있는 시스템들이 많고, 많은 Java 생태계가 조성되었기 때문에 점유율을 그다지 높이지는 못했다. 또한 Java를 대신할 수 있는 포지션에 파이썬(Python)과 같은 다른 언어들이 대안이 되고있는 상황이였다. C#을 통하여 다룰 수 있는 닷넷 플랫폼의 기술들 조차도 자바를 염두에 둔 ..
[CS] URL을 주소창에 입력했을 때 화면이 나오기까지의 과정 www.google.com을 주소창에 쳤을 때 화면이 나오기까지의 과정 (네트워크 관점) 1. 사용자가 브라우저에 URL 입력 2. 브라우저는 DNS를 통해 IP 주소를 찾는다. 3. client에서 HTTP request 메시지 => TCP/IP 패킷 생성 => server로 전송 4. server에서 HTTP request에 대한 HTTP response 메시지 => TCP/IP 패킷 생성 => client로 전송 5. 도착한 HTTP response message는 웹 브라우저에 의해 출력(렌더링) 웹 동작 방식 1. 유저가 브라우저에서 www.google.com(URL)을 입력하면 HTTP request message를 생성한다. 2. IP 주소를 알아야 전송할 수 있으므로 DNS lookup을 ..

728x90
반응형