전체 글 43

Next.js 13 + typescript에서 styled-component 사용하기 (바벨이랑 충돌나는 분 오셈~)

next.js 13 버전을 사용하던 중 sass에서 styled-component로 갈아타려고 합니당. 우선 styled-components를 설치 npm i styled-components npm i @types/styled-components 넥스트에서 styled-compoenets를 사용하면 스타일이 적용되지 않은 html이 먼저 렌더링 되는 문제가 있어 보통 babel-plugin-styled-components를 설치하고 .babelrc 파일에서 설정을 해주는데 그렇게 하니 아래와 같은 에러가 발생했답니다~!! Syntax error: "next/font" requires SWC although Babel is being used due to a custom babel config being ..

Frontend 2023.03.22

[Mac] 웹서버 킨 적 없는데 localhost 들어갔을 때 it works! 메시지

이거 때문에 하루를 날렸어요^^ wordpress + nginx 실행시키고 8080포트 들어가려는데 it works! 메시지만 떠서 하루 버렸습니다. ^0^/ 알고보니 nginx 실행 안시키고 들어가도 메시지 뜸.. 아니 어쩐지 누가 자꾸 내 80포트 쓰고 있더라구요~! 해결법은 sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 요렇게! 맥에 내장된 apache가 자동실행 되는 거셨다 ~..

🌱기타 2023.03.07

[CPP_Module] Orthodox Canonical Form : 기본생성자, 복사생성자, 할당연산자 오버로딩, 소멸자

Orthodox Canonical Form 기본 생성자 기본 소멸자 복사 생성자 할당 연산자 오버로딩 class A { A(); ~A(); A(const A &a); A &operator= (const A &a); };복사생성자 따로 정의해주지 않아도 default 복사생성자 존재함 그런데 deep copy가 아닌 shallow copy함 #include class A { private: int *n; public: A() { n = new int(0); } int getN(){ return *n; } void setN(int num) { *n = num; } }; int main(void) { A a; A b(a); std::cout

CPP_Module_01 객체 배열 생성, 포인터와 레퍼런스 타입, 함수포인터, fstream

CPP module 01 ex00 zombie 객체를 두가지 방식으로 생성. 스택에 zombie 객체 생성 (randomChump()) 힙에 객체를 만들어보기(newZombie()) heap에 만들기 : new 키워드를 사용한다. 자동으로 소멸되지 않으므로 다 쓰면 delete를 해주어야함 ex01 객체 배열 생성하기랑 할당 해제하기 //zombie 객체 n개를 를 한번에 할당 Zombie *z = new Zombie[N]; delete [] z; ex02 pointer 와 reference 타입의 차이 이해하기 int n = 0; int *ptr = &n; int &ref = n; ptr 안에는 n이 저장되어있는 곳의 주소값이 있음. ptr을 통해 n에 접근할 수 있을 뿐 ptr과 n은 전혀 다른 변수..

CPP_Module_00

CPP module 00 ex00 cpp의 입출력은 iostream 을 사용한다! 객체지향인 cpp는 stdio 보다 객체지향 라이브러리인 iostream을 사용하는 것이 편하다. 에 대입할수 있는 타입이 더 다양하기 때문! 객체나 구조체를 출력할 때 더 편할 것이당당~ Makefile에 CC CFLAGS가 아닌 CXX CXXFLAGS를 사용하는 이유 Makefile의 OBJS에서 .c:.o의 규칙을 따로 정하지 않고 OBJS = $(SRCS:.cpp=.o) 로 했을 때 ! 컴파일 옵션이 자동으로 들어가지지 않음!!! NAME = phonebook SRCS = main.cpp Contact.cpp PhoneBook.cpp OBJS = $(SRCS:.cpp=.o) CXXFLAGS = -Wall -Wextr..

[python] enumerate 사용하기

lst = [5, 6, 7, 8, 9] for i in range(len(lst)): # 인덱스를 알 수 있지만 권장하지 않는 방법이라고 함 ... for i in lst: #이 방법을 권장! ... iterable한 객체를 돌고 싶을 때 인덱스까지 알고 싶으면 enumerate를 사용 >>> lst = [4, 5, 6, 7] >>> for i in enumerate(lst): print(p) (0, 4) (1, 5) (2, 6) (3, 7) >>> for i, v in enumerate(lst): print(i + ', ' + v) 0, 4 1, 5 2, 6 3, 7 튜플의 형태로 반환해준다. (index, value)

[42seoul] philosophers

Philosophers Overview 과제를 하기 전 알아야 할 것! : 하나 이상의 철학자가 둥근 테이블에 앉아 가운데 있는 스파게티를 먹음 철학자는 eat, think, sleep 중 하나의 상태를 취하고 있음 철학자의 수 만큼 포크가 있음. 꼭 양손으로 포크 두개를 잡고 먹어야 한대… 철학자가 eating을 끝내면 sleeping 시작, 일어나면 thinking 함. 이 시뮬레이션은 철학자가 굶어 죽으면 종료 모든 철학자는 먹어야 하고 굶으면 안돼! 철학자는 서로 얘기하지 않음, 서로 죽을 위기에 있다는 것도 모름 철학자가 죽는 것을 피하자.. Global rules 전역 변수 금지 프로그램이 인자로 받는 것 : number_of_philosophers : 철학자 수 == 포크 개수 time_to..

🐰42서울 2022.08.14

[프로그래머스 lv.2] 오픈채팅방 2019 KAKAO BLIND RECRUITMENT

msg = {"Enter":"님이 들어왔습니다.", "Leave":"님이 나갔습니다."} nickname = {} def solution(record): answer = [] myRecord =[] for s in record: if s.split()[0] == "Enter" or s.split()[0] == "Change": nickname[s.split()[1]] = s.split()[2] if s.split()[0] == "Enter" or s.split()[0] == "Leave": myRecord.append([s.split()[1], s.split()[0]]) for i in myRecord: answer.append(nickname[i[0]] + msg[i[1]]) return answer

🥴알고리즘 2022.08.14