본문 바로가기

728x90

전체 글

크롬 콘솔에서 lodash 사용하는 방법 (콘솔에 script 가져오기) let script = document.createElement('script'); // can load any script, from any domain script.src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.3.0/lodash.js" document.head.append(script); 이와 같은 document head 에 추가하는 방법으로 lodash 뿐만 아니라 다른 스크립트를 가져와서 사용할 수 있다. 참고: https://ko.javascript.info/onload-onerror#ref-1272 더보기
미니쉘(minishell) 과제 - 트리 구조로 파싱하기 미니쉘(minishell)은 팀 프로젝트였기에 팀원 분과 같이 진행을 하였습니다. 저는 파싱 부분을 담당했으며, 팀원 분은 빌트인 함수 구현을 담당해주셨습니다. 간단하게 저희의 파싱 방식과 FlowChart를 공유해보겠습니다. 이 글이 치트 sheet 가 되는건 원치 않습니다. 파싱트리의 대략적인 감을 잡을 잡으시는데 도움이 되길 바라겠습니다. 문제시 연락해주세요. 실제 bash의 동작방식과 다르며, 저희만의 쉘을 만들었기 때문에 이를 참고하시고 읽어주시면 감사하겠습니다. minishell 하시는 모든 분들 파이팅입니다 ~~~! 사전 조사 먼저 파싱(parsing) 이란 것을 조사할 필요가 있었습니다. 컴퓨터 과학에서 파싱((syntactic) parsing)은 일련의 문자열을 의미 있는 토큰(token.. 더보기
ascii-image-converter 를 사용하여 이미지를 아스키코드로 변환하기 미니쉘을 진행하던 도중 쉘을 시작할 때 이쁘게 꾸며놓은 팀이 있어서 변환 방법을 찾다가 오픈소스를 발견하였습니다. 사용방법도 간단하여 나중에 쓸일이 있을까 하여 글을 적어 놓습니다. 깃허브 주소: https://github.com/TheZoraiz/ascii-image-converter brew install TheZoraiz/ascii-image-converter/ascii-image-converter 맥북을 사용할 경우 brew 를 이용하여 손쉽게 설치할 수 있습니다. ascii-image-converter [image paths/urls] --color 사용방법은 ascii-image-converter 와 이미지 경로, 그리고 옵션을 넣으면 됩니다. 더보기
pipe를 연속으로 사용할 경우 반환되는 filedescriptor 값 테스트 (C언어) minishell 을 만드는 도중 pipe 함수를 연속적으로 호출했을때 어떤 filedescriptor 값이 호출되는지 궁금하여 테스트 해보았다. 입력은 위와 같이 주었다. PIPE 계속 호출 void next_pipe_check(t_ast *node, t_mcb *mcb) { int a; // 다음에 또 파이프가 있는가? if (node->right->type == AST_PIPE) { a = pipe(mcb->fd); // 3, 4 a = pipe(mcb->fd); // 5, 6 a = pipe(mcb->fd); // 7, 8 a = pipe(mcb->fd); // 9, 10 a = pipe(mcb->fd); // 11, 12 } } 코드 일부분이다. 계속해서 int fd[2] 배열을 인자값으로 pi.. 더보기
ssh 를 사용하여 배포시 서버측의 environment 를 불러오지 못하는 문제 (github action) 문제 https://github.com/innovationacademy-kr/swlabs-helper/ 프로젝트를 진행하며 github Action을 사용하여 CD 구현중에 생긴 이슈이다. name: remote ssh command for release deploy on: push: # main 브랜치에서만 작동합니다. branches: [main] paths-ignore: - 'README.md' - 'docs/**' jobs: build: name: Build runs-on: ubuntu-latest steps: - name: executing remote ssh commands using key uses: appleboy/ssh-action@master with: host: ${{ secrets... 더보기
42 inception 과제 기초 가이드 - 도커 컴포즈로 실제 서비스를 올려보자 42 서울 inception 과제는 docker-compose를 사용하여 여러 도커 파일들을 컨테이너로 올려야한다. ft_server라는 과제가 있었지만 지금은 사라졌다. Dockerfile 하나로 컨테이너를 올려서 서비스를 관리하는 방법이 궁금하다면, ft_server를 검색해보면 카뎃들이 작성한 좋은 글들을 많이 볼 수 있다. 이 글에서는 간단한 도커 컴포즈 파일(docker-compose.yaml)을 작성하여, 간단하게 Wodrpess 서비스를 올려보는 과정을 실습해본다. inception 실습을 해보기 전에 quickstart: docker-compose wordpress 예제를 해보는 것을 추천한다. 1. 과제에서 목표로 하는 시스템 구성도 총 3개의 도커이미지를 사용하여 컨테이너를 띄어야 한다.. 더보기
Docker 에러: Cannot create container for service : file exists 에러 발생 Creating srcs_mariadb_1 ... error Creating srcs_adminer_1 ... ERROR: for srcs_mariadb_1 Cannot create container for service mariadb: failed to mkdir /var/lib/docker/volumes/srcs_db-data/_data/mysql: mkdir /var/lib/dockerCreating srcs_adminer_1 ... done ERROR: for mariadb Cannot create container for service mariadb: failed to mkdir /var/lib/docker/volumes/srcs_db-data/_data/mysql: mkdir /va.. 더보기
PUSH_SWAP 과제 아래 두 자료를 주로 참고하여 코드를 작성하였다. 1. 슬랙에 minckim님 께서 올려주신 push_swap가이드 2. https://medium.com/@jamierobertdawson/push-swap 번역된 글 과제의 감을 잡고, 진행하는데 있어서 정말 도움이 많이 되었다. 간단 과제 설명 a 스택, b스택이 주어진다. 문제에서 주어진 액션(sa, sb, ss, pa, pb, ra, rb, rr, rra)을 사용하여 스택 a를 정렬시킬 수 있는 액션들을 출력해야한다. $> ./push_swap 2 1 3 6 5 8 sa pb pb pb sa pa pa pa 2 1 3 6 5 8 을 정렬시키기 위해서는 위와 같이 액션을 호출하면 정렬 할 수 있다. 동작을 시각화로 살펴보자 사실 문제만 봐서 이해가 .. 더보기

728x90