전체 글193 [ minishell ] 1. 사전지식 # shell 명령어 해석기 command interpreter 사용자가 입력한 명령어를 해석하여 커널에 전달 터널과 사용자간의 대화식 인터페이스를 제공 로그인 할 때 실행되어 사용자별로 사용 환경 설정을 가능하게 한다. 강력한 스크립트 언어 리다이렉션과 파이프 기능을 제공하고 포그라운드/백그라운드 프로세스를 실행 # bash shell /bin/bash 명령어 완성 기능, 히스토리, 명령어 치환, 편집 등의 지원 # 환경 변수 전체 shell에서 사용 가능한 전역 변수 서브 shell에 기능 상속 가능 env로 환경 변수를 확인할 수 있다. # 셸 변수 현재 로그인 shell에서만 사용 가능한 지역 변수 서브 shell에 기능 상속 불가능 set으로 shell 변수를 확인할 수 있다. # 프롬프트 ht.. 2022. 5. 15. [minishell] 0. 과제 이해하기 [minishell] : As beautiful as a shell # Description 간단한 shell을 만들어봅시다. # Keywords Unix logic # common instructions 더보기 프로젝트는 C로 작성된다. norm을 따라야한다. 보너스 역시 norm을 따라야 한다. 예기치 않게 프로그램이 중단되어서는 안됩니다. (segmentation fault, bus error, double free 등등등등ㄷ) 메모리 누수 당연히 안됨 할당한 메모리는 모두 해제하세영 -Wall -Wextra -Werror 플래그를 통해 컴파일 수행하기, 리링크는 당연히 안됩니다. Makefile은 $(NAME), all, clean, fclean, re 규칙을 포함해야해요. 보너스를 만들고자 할 .. 2022. 5. 13. [Philosophers] 1. 과제 해결하기 # 철학자들은 스레드로 구현되어 있다. * 쓰레드 : 어떤 프로그램 내에서 실행되는 흐름의 단위 운영체제의 일부인 스케줄러에 의해 독립적으로 관리될 수 있는 프로그래밍 된 명령어의 가장 작은 시퀀스 하나의 프로그램은 하나 이상의 프로세스를 가지고 하나의 프로세스는 하나 이상의 스레드를 가진다. * 프로세스 : 컴퓨터 프로그램의 인스턴스로 하나 이상의 스레드를 통해 실현된다. - 메모리에 적재되고 CPU 자원을 할당받아 프로그램이 실행되고 있는 상태 * 스레드 vs 프로세스 프로세스는 실행될 때 운영체제로부터 각각 독립된 메모리 영역을 할당받는다. 스레드는 한 프로세스 내에서 동작되는 흐름으로 프로세스네에서 stack영역만 별도로 할당 받는다. 부모프로세스의 코드, 데이터, 힙 영역은 공유한다. 즉, 프로.. 2022. 5. 8. [스프링 스터디] 2주차. JPA ?? 각 애노테이션에 대해서 모두 알고 쓸 것 아닌가? 그럼 애노테이션은 따로 어떻게 공부하는지? 애노테이션으로 쓸 수 있는 옵션에 대해서 어떻게 공부하는지? 이거 final 왜쓸까요? 컬럼 이름이 이상하다. # 배운 점 관계형 데이터베이스 (RDB, Relational DataBase) 서로 지향하는 바가 다른 두 영역의 중간에서 JPA를 통해 패러다임 일치를 시킬 수 있다. 관계형 데이터베이스 : 어떻게 데이터를 저장할지에 중점을 둔 기술 관계형 데이터베이스를 사용하기 위해서 각 테이블마다 반복적인 CRUD SQL이 생성되어야한다. 객체지향 언어 : 메시지를 기반으로 기능과 속성을 한 곳에서 관리하는 기술 JPA 2022. 5. 7. [스프링 스터디] 1주차. 단위테스트, 롬복 공부하는 책 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 이동욱 지음 공부한 Github : https://github.com/anso33/jojo.springboot-example.git 견고한 서비스를 만들기 위해서는 TDD, 적어도 테스트코드를 작성하면서 진행해야한다. TDD : 테스트가 주도하는 개발 테스트 코드를 먼저 작성한다. 단위 테스트 : 기능 단위의 테스트 코드를 작성 장점1 : 코드에 대한 결과(피드백)확인이 빠르다. 장점2: 자동검증이 가능하다. 장점3: 새로 코드를 추가하고자 할 때 개발자가 만든 기존의 기능이 잘 작동함을 보장한다. 테스트 코드 작성할 때 사용하는 프레임워크 ex) JAVA - JUnit, DB - DBUnit, C++ - CppUnit, ... 스프링 .. 2022. 5. 7. <pthread.h> #include # pthread_attr_t # pthread_create() 호출 프로세스 내에서 새로운 쓰레드를 생성한다. #include intpthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); 파라미터 *thread : pthread_create()호출이 성공하면 반환 전에 새 스레드의 ID를 *thread에 저장한다. *attr : pthread_attr_t 구조체로 스레드 생성 시점에 사용해서 새 스레드의 속성을 결정한다. *start_routine : 새 스레드는 start_routine() 호툴로 실행을 시작한다. *arg : start_routine에.. 2022. 4. 30. [so_long] 04. so_long 회고 # 어려웠던 점 1. 크기가 다 똑같은 이미지를 구하기가 어려웠다. 과제에서 알려주는 사이트로 들어가면 16, 6, 32 제각각이다. 그래서 원하는 이미지만 골라서 넣고자 할 때도 전부 같은 크기로 맞추기 어려웠다. 제발 고생하지 말고 이거 써서 크기 맞추세여!!!!!!! https://www.resizepixel.com/ko 2. 구조체안에 구조체를 두었다. 좀 갈끔하게, 변수를 덕지덕지 넣지 않고 분류되듯이 하려고 구조체안에 캐릭터에 대한 정보를 담는 구조체, 맵에 대한 정보를 담는 구조체, 이미지에 대한 정보를 담는 구조체를 넣었는데 typedef struct s_map { introw; intcol; }t_map; typedef struct s_img { void*mermaid; void*shoe.. 2022. 4. 27. [Philosophers] 0. 과제 이해하기 목표는 4월 안에 끝내기..! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ아오 진짜 so_long을 빨리 했어야지 이 사람아......에휴 [Philosophers] : I never thought philosophy would be so deadly # Description In this project, you will learn the basics of threading a process. You will see how to create threads and you will discover mutexes. 이번 프로젝트에서 프로세스 스레딩의 기본을 배울 수 있다. 어떻게 스레드를 만드는지, 뮤텍스가 무엇인지도 알 수 있다. # Keywords - Unix logic #Skills - Imperative programming .. 2022. 4. 27. [도서 리뷰] 도메인 주도 개발 시작하기 도메인 주도 개발 시작하기 (DDD 핵심 개념 정리부터 구현까지) // 최범균 지음 , 한빛미디어 스프링을 공부하면서 도메인이라는 용어가 나올 때 DDD라는 개념를 함께 알아두면 좋다고 해서 궁금했는데 마침 좋은 기회가 생겨서 DDD에 관한 책을 읽어보게 되었다. !! # DDD , Domain-Driven Design 도메인패턴을 중심으로 설계하는 방법 도메인 : 소프트웨어로 해결하고자 하는 문제 영역 ex) : 주문도메인, 결제도메인, 배송도메인 등등 DDD를 통해 각각의 도메인은 서로 분리되어 의존성은 최소화하고 응집성은 최대화 할 수 있다. - (DDD가 아닌) 기존의 개발 방식 데이터에 종속적인 애플리케이션 모델링과 개발과의 불일치 발생 도메인 전문가(개발을 요구하는)가 도메인에 대한 경험을 바.. 2022. 4. 24. 이전 1 2 3 4 5 6 7 8 ··· 22 다음