Dev 92

C

[Design Pattern] Factory - 팩토리 디자인 패턴

Factory Design Pattern 가장 기초적인 디자인 패턴. 객체를 찍어내는 공장. 이 공장은 함수로도, 클래스 객체로도 만들어 낼 수 있다. # 팩토리 패턴 예시 Animal객체를 상속받는 Cat, Dog 클래스 class Animal(): def speak(self): pass class Cat(Animal): def speak(self): print("Meow!") class Dog(Animal): def speak(self): print("Baww!") 팩토리 함수 # argument로 들어오는 요청에 따라 적절한 Animal객체를 만들어 반환. def FactoryFun(animal: str) -> Animal: # argument로 string을 받고 있지만, 실제 코드에선 enum이..

Dev/Design Patterns 2021.11.20

C

[Design pattern] Singleton - 싱글톤 디자인 패턴

Singleton Pattern 프로세스 실행 중에 오직 하나의 객체만 생성되도록 강제하는 디자인 패턴. 싱글톤이 적용된 클래스의 객체를 여러개 생성해도 모두 하나의 객체만을 가리키게 된다. 결국, 해당 객체는 단 하나만 만들어지게 되는 것. # 싱글톤 클래스 정의 싱글톤 클래스는 static 변수(instance)가 존재한다. 싱글톤 클래스에서 내부 static 변수가 정의되어 있지 않다면, static 변수에 현재 객체(this)를 할당해주고, 이 변수를 return해준다. class Singleton{ static instance; if(!Singleton.instance){ Singleton.instance = this; } return Singleton.instance; } 이제 클라이언트 코드..

Dev/Design Patterns 2021.11.18

C

[ Python ] 3항 연산자 (Ternary Operator) 에서 break, return을 사용 할 수 없는 이유

while True: a, b = map(int, input().split()) print(a + b) if (a + b) else break 줄 수를 줄이기 위해 위와 같이 코드를 작성하자, break에 빨간 줄이 그어지며 SyntaxError: invalid syntax가 발생했다. Python에서 3항 연산자의 사용 방식은 다음과 같은데, if else 여기서 는 expression이며, break, return과 같은 명령어는 statement라고 한다. expression와 statement을 구분하는 방법은 출력할 수 있거나, 변수에 값을 삽입할 수 있으면 expression, 할 수 없으면 statement 이다. expression의 예 2 + 2 3 * 7 1 + 2 + 3 * (8 **..

Dev/Python 2021.10.23

C

[ C ] char 포인터가 malloc으로 할당된 메모리보다 더 많은 데이터를 저장하는 이유

# 소스코드 #include #include int main(int argc, char const *argv[]) { char *p, *pp, *ppp; p = (char *)malloc(3); pp = (char *)malloc(3); ppp = (char *)malloc(3); printf("in p : "); scanf("%s", p); printf("\nin pp : "); scanf("%s", pp); printf("\nin ppp : "); scanf("%s", ppp); printf("\np : %s", p); printf("\npp : %s", pp); printf("\nppp : %s", ppp); return 0; } char 포인터 변수 p, pp, ppp에 malloc으로 각각 3씩..

Dev/C, C++ 2021.10.18

C

Github SSH 키로 접속하기

Github SSH 키로 접속하기 *git bash에서 * SSH키 생성 ssh-keygen -t rsa -b 4096 -C "(이메일 주소)" 빈칸으로 엔터 엔터 엔터 /c/Users/(사용자 이름)/.ssh/id_rsa.pub에 ssh 키가 생성됨 ssh-agent에 SSH키 추가 $ eval $(ssh-agent -s) > Agent pid (pid넘버가 출력됨) $ ssh-add ~/.ssh/id_rsa github에 ssh키 등록하기 Title에는 아무 이름 Key에는 /c/Users/(사용자 이름)/.ssh/id_rsa.pub에 담긴 키를 복붙한다 SSH로 Clone SSH로 repository를 클론해주면 아이디/비밀번호 입력 없이 push가 가능하다.

Dev/Git 2021.08.14

C

[Linux] Shell Script

Shell Script IO Redirection > : 출력되는 방향을 다른 곳으로 돌림 Standard Output Redirection 커맨드 실행 후 출력되는 결과(Output)를 파일로 저장 ls -l > result.txt // 파일목록을 result.txt에 저장 Angle bracket('>')은 Standard Output만 Redirect하므로 아래와 같이 출력되는 Error는 파일로 만들 수 없다 // result.html는 존재하지 않는 파일 rm result.html > result.txt // 에러가 출력되지만 result.txt에 저장되지는 않는다. >에는 앞에 1이 생략되어 있는데, 이건 Standard Output을 의미한다. Angle bracket 앞에 2..

Dev/Linux 2021.08.14