반응형

CS (Computer Science) 7

[알고리즘] 재귀함수란? 재귀함수로 팩토리얼과 피보나치 수열 구현 / For문과의 차이

재귀함수란?? 재귀함수(Recursive Function)는 자신이 수행하는 함수 내에서 자기 자신을 다시 호출하여 작업을 수행하는 함수를 말합니다. 이러한 재귀적 호출을 통해 복잡한 문제를 간단하게 해결할 수 있습니다. 재귀함수로 팩토리얼 구현 재귀 함수의 대표적 예시인, 팩토리얼 함수를 구현해보겠습니다. 팩토리얼 함수는 양의 정수 n에 대해 n!을 구하는 함수이며, n!은 1부터 n까지의 정수를 모두 곱한 값입니다. function factorial(n) { if (n === 0) { // n이 0일 때, 1을 반환합니다. return 1; } else { // n이 0이 아닐 때, 자신을 다시 호출합니다. return n * factorial(n-1); } } console.log(factorial..

[디자인 패턴] Builder 패턴

Builder 패턴이란? 빌더 패턴은 생성자에 들어갈 매개 변수가 많든 적든 차례차례 매개 변수를 받아들이고 모든 매개 변수를 받은 뒤에 이 변수들을 통합해서 한 번에 사용을 합니다. Builder 패턴의 장점 필요한 데이터만 설정 유연성 확보 가독성을 높임 불변성 확보 Builder 패턴을 쓰는 이유 /** * 제약사항 : 이 객체는 한번 생성되면 읽기(Read)만 가능해야 합니다. */ public class PersonInfo { private String name; private Integer age; private String favoriteColor; private String favoriteAnimal; private Integer favoriteNumber; public PersonInfo..

[디자인 패턴] 싱글톤 패턴이란?

싱글톤 패턴이란? 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미합니다. 아래의 코드는 싱글톤패턴의 간단한 코드입니다. public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { // 생성자는 외부에서 호출못하게 private 으로 지정해야 한다. } public static Singleton getInstance() { return instance; } public void say() { System.out.println("hi, there"); } } 싱글톤 패턴의 장점 메모리 낭비를 방지할 수 있습니다. 최초의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 ..

[Database] DBMS에서 쿼리를 처리하는 단계(쿼리 파싱 순서)

DBMS에서 쿼리를 처리하는 5단계 구문 분석 (Parsing) 요청하는 쿼리가 잘못됐는지 확인하는 과정 구문 오류 및 맞춤법 오류는 이 단계에서 검색할 수 있습니다 유효성 검사 테이블이 데이터베이스에 있는지, 모든 열이 존재하고 열 이름이 모호하지 않은지, 사용자에게 쿼리문을 실행하는데 필요한 권한이 있는지 등 이 단계에서 특정 의미 체계 오류를 검색할 수 있습니다. 액세스 계획 생성 최적화 액세스 계획을 수행하는 다양한 방법을 살펴봅니다. 여러 대안을 탐색한 후 DBMS는 그 중 하나를 선택합니다. 실행 DBMS는 액세스 계획을 실행하여 쿼리문을 실행합니다. SQL 파싱 순서 Syntax 에러(문법, 구문 오류) 체크 Semantic(권한, 존재 여부) 체크 Library Cache 영역으로 가서 저..

[네트워크] 3-way-handShake와 TCP 와 UDP

3 - way - handShake란??? TCP와 UDP의 차이를 알려면 먼저 3 - Way - Handshake를 먼저 알아야 한다!! 3 - Way-Handshake란, 전송제어 프로토콜(TCP)에서 통신을 하는 장치간 서로 연결이 잘 되어있는지 확인하는 과정/방식이다. 더 쉽게 말해서 송수신자 (데이터를 주고 받는 2사람이라고 생각하면 쉬울 것 같다)사이에 연결을 확인하는 과정이다. 아래는 참고 그림이다 * TCP의 3-way Handshaking 과정 [STEP 1] 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다. 이때 클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 된다. [STEP 2] 서버는 SYN요청을 받고 클라이언트에게 요청을 수락한다는 AC..

[네트워크] HTTP(Hyper Text Transfer Protocol) 란? HTTP의 요청과 응답

HTTP란? HTTP(HyperText Transfer Protocol)는 W3 상에서 정보를 주고받을 수 있는 프로토콜이다. HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 주로 HTML 문서를 주고받는 데에 쓰인다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이며 Method, Path, Version, Header, Body 등으로 구성된다! 그래서 HTTP는 클라이언트 정보를 저장하지 않아서 클라이언트를 구분하기 어렵다! ※ W3란 월드 와이드 웹(World Wide Web, WWW, W3)은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 ..

[Database] MYSQL로 ERD 쉽게 만들기

프로젝트를 진행하면 기획에서 필요한 데이터와 컬럼을 정리해주고 육안으로 쉽게 보여주는 ERD는 작성은 필수입니다. 그 때 필요한 ERD를 쉽게 제작해주는 방법입니다. ERD 만드는 방법은 여러 방법이 있지만 저는 MySQL로 만들었습니다 MySQL로 ERD 만들기 먼저 MySQLWorkbench를 실행시켜주세요. mySQL → Database → Reverse Engineer Database next 누르고 비밀번호 입력하고 next next 클릭 스키마 선택 next excute 클릭 operation completed successfully 라고 뜨면 끝 이렇게 ERD가 알아서 만들어집니다 제가 만든 테이블 board의 writer와 user_info는 서로 참조 관계에 있습니다. 그래서 더블 클릭후..

반응형