본문 바로가기

전체 글181

[스프링 스터디] 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.
open | close | read | write (저수준 파일입출력 함수) # 저수준 파일입출력 함수 속도가 빠르다. 바이트 단위로 읽고 쓴다. 특수 파일에 접근할 수 있다. 바이트 단위로 입출력하기 때문에 기능을 추가적으로 구현해야한다. # 파일 디스크립터, fd - 시스템으로부터 할당받은 파일이나 소켓을 대표하는 정수 0 표준 입력 1 표준 출력 2 표준 에러 출력 3 여기부터 open 함수로 순차적 할당 ... ... # open 파일을 열거나 생성할 때 사용한다. - 시스템 호출 #include int open(const char *path, int oflag, [mode_t mode]); https://kirkim.github.io/c/2021/02/18/lowfildefunc(1).html - 여기를 보면 errno값이 자동으로 설정되어 perror로 오류코드를 해석.. 2022. 4. 24.
[0423] C 에러 해결 1. 에러명 : argument of type "t_img" is incompatible with parameter of type "void *" -> 구조체에 t_img를 포인터형으로 선언하지 않아서 발생 void free_all(t_game *game) { free(game->img); free(game) }​ 2. 이것도 img의 포인터 선언문제 이것도 img의 포인터 선언문제, 포인터로 선언했으면 . 을 ->으로 바꿔야한다. 해결 3. 메모리 누수 gnl로 한줄씩 읽어올때 이전에 저장하고 있던 라인들을 해제하지 않아서 메모리 누수 발생 intmap_read_in_line_util(t_game *game, int fd, char *line, char *temp) { while (line) { gam.. 2022. 4. 23.
[so_long] 03. 창 만들어서 키보드 입력받기 https://github.com/terry-yes/mlx_example 의 자료를 해석했습니다. 1. mlx_init() 소프트웨어와 화면을 연결 mlx 라이브러리 초기화 2. mlx_new_window(mlx, width, height, "SO_LONG"); SO_LONG 이라는 이름을 가지고 너비가 width, 높이가 height인 창 띄우기 3. 키보드와 연결하기 (MAC ver) #define X_EVENT_KEY_PRESS2 #define X_EVENT_KEY_release3 #define X_EVENT_KEY_EXIT17 //exit key code //Mac key code example //All the key code example other than below is described .. 2022. 4. 20.