전체 글 61

[C] 동적할당 malloc/free

동적할당이란 프로그램 실행 중에 동적으로 메모리를 할당하는 것이다. 동적으로 메모리를 할당한다는 것은 Heap 영역에 할당한다는 것을 의미한다. 헤더 파일) 함수 원형) void* malloc(size_t size) 리턴값) 성공 시 할당한 메모리의 첫 번쨰 주소 리턴. 실패 시 NULL 리턴 주의할 점) free(ptr) 로 할당한 메모리 해제하기 예제) //과목 개수 만큼 메모리 동적할당을 합니다. pArr = (int*)malloc(sizeof(int) * num); //동적할당 실패 if (pArr == NULL) { printf("malloc error"); exit(1); } // 출처: https://blockdmask.tistory.com/290 [개발자 지망생] blockdmask.tis..

[운영체제] 내가 자주 쓰는 vim 명령어

shift + v + g (전체선택) y (전체 복사) d (전체 삭제) dd (한줄만 삭제) gg (맨 위 첫줄로 이동 u: 뒤로가기 ^: 문장 맨 앞으로 $: 문장 맨 뒤로 키기능 w 단어 첫 글자 기준으로 다음으로 이동 W 공백 기준으로 다음(단어의 시작)으로 이동 b 단어 첫 글자 기준으로 이전으로 이동 B 공백 기준으로 이전으로 이동 e 단어 마지막 글자 기준으로 다음으로 이동 E 공백 기준으로 다음(단어의 끝)으로 이동 gg 문서 맨 앞으로 이동 G 문서 맨 아래로 이동 ^ 문장 맨 앞으로 이동 $ 문장 맨 뒤로 이동

카테고리 없음 2021.05.04

[운영체제] VIM 자주 쓰는 명령어

i : 커서의 위치에 입력 I: 커서 행의 맨 앞에서 부터 입력 a : 커서 위치 다음 칸부터 입력 A : 커서 행의 맨 마지막부터 입력 o : 커서의 다음 행에 입력 O : 커서의 이전 행에 입력 p : 현재 커서에 붙여 넣기. 행 복사일 경우 아래 줄에 붙여 넣음 P : 현재 커서 위치의 앞 행에 붙여넣기. 행 복사일 경우에는 윗 줄에 붙여넣음 dd : 커서가 있는 행을 삭제 yy : 커서가 위치한 한 행 복사 . : 아무 문자나 한 문자 의미 출처 및 참고하면 좋은 자료: gyuha.tistory.com/157 VIM / VI 명령어 정리 vim을 쓰면서 나름대로 아는 내용을 wiki에 정리해서 올리다가.. 공유 합니다. 정리 내용은 유닉스리눅스 프로그래밍필수 유틸리티라는 책을 참조 했습니다. wi..

카테고리 없음 2021.03.22

[c++] 버퍼 비우기

namwhis.tistory.com/entry/cin%EA%B3%BC-getline%EC%9D%84-%EA%B0%99%EC%9D%B4-%EC%82%AC%EC%9A%A9%ED%95%A0%EB%95%8C-cinignore%EC%9D%B4-%ED%95%84%EC%9A%94%ED%95%9C-%EC%9D%B4%EC%9C%A0-%EA%B8%B0%EB%A1%9D cin과 getline을 같이 사용할때 cin.ignore()이 필요한 이유 기록 제대로 알지 못하면서 알고 있다고 생각하는것만큼 무서운것이 없습니다. 선무당이 사람 잡는다. cin과 getline을 같이 사용할때 cin.ignore()이 필요한 이유를 잘못 알고 쓰고 있었습니다. 잘못 namwhis.tistory.com c++에서 getline() 함수와 ..

[운영체제] 우분투 설치 방법

mainia.tistory.com/2379 버추얼박스(VirtualBox) 이용해서 우분투(Ubuntu) 설치하기 버추얼박스(VirtualBox) 이용해서 우분투(Ubuntu) 설치하기 환경: VirtualBox 버추얼박스(VirtualBox) 를 이용해서 다양한 OS 를 자신의 컴퓨터에 설치할 수 있습니다. 저는 직업 특성상 리눅스 OS 를 접할 일 mainia.tistory.com 나는 위의 링크를 참조하여 VirtualBox와 Ubuntu를 설치했다. 그런데 VirtualBox를 설치하고 Ubuntu를 가상 머신 내에서 설치하는 도중에 저장공간 부족의 문제로 설치할 수가 없었다. USB에 Ubuntu를 설치해도 되지만 설치한다 하더라도 부팅 속도가 매우 느리기 때문에 가급적 PC 내에 설치하도록 권..

카테고리 없음 2021.03.19

[운영체제] 리눅스 명령어

깜박깜박 하는 것은 입력모드 i: INSERT 모드로 전환 명령 모드로 돌아와줘야 실행할 수 있다. esc 키를 누르면 명령 모드로 다시 돌아온다 a 키를 누르면 입력할 수 있다. o: 라인을 밑으로 내려가서 입력할 수 있다. insert모드로 전환 I: 제일 앞으로 가서 입력할 수있다. shift+a: 라인 맨 뒤로 가서 입력 가능 cw: 데이터 글자가 지워지고 insert 모드로 전환 h: 왼쪽 l: 오른쪽 방향키 j: 아래 k: 위 shift+$: 라인 제일 뒤로 shift+^: 라인 제일 앞으로 y: 복사p p: 붙여넣기 shift+v: 라인 선택. visual line dd: 한줄 삭제 2+dd: 두줄 삭제 2+yy: 두줄 복사 ctrl+f: 보이는 라인의 다음 라인 ctrl+b: 원래 화면으로..

서버/클라이언트/웹의 동작 개념

우리가 보는 웹 페이지는 원본의 복사본이며, 원본을 가지고 있는 곳은 서버이다. 서버가 자신이 가지고 있는 웹 페이지 원본을 복사해서 요청이 들어오면, 클라이언트가 이 복사본을 받아와서 복사본을 사용자에게 보여준다. 즉, 크롬 등과 같은 웹 브라우저가 클라이언트의 역할을 하는 것이다. 그렇다면 클라이언트는 어떻게 요청을 보내는것일까? 서버는 모든 약속들을 정해놓았다. 약속에 맞는 화면을 HTML, CSS, JavaScript로 이루어져 있는 원본 파일을 복사해서 클라이언트한테 넘겨주는데, 이러한 약속들을 API라고 부른다. 서버가 만들어 놓은 "API"라는 창구에 미리 정해진 약속대로 요청을 보내는 것이다. ex) https://naver.com/ → 이것은 "naver.com"이라는 이름의 서버에 있는..

[Tomcat] stopped 상태가 지속될 경우

Spring에서 보통 포트를 죽이고 서버를 다시 실행하는데, 갑자기! 몇 분 전까지만 해도! 잘되던 톰캣이!! 실행조차 안됐다. 내 톰캣이 무슨 문제인지 시간은 오래 걸려도 실행은 해줬는데 아무리 포트를 죽이고 재시작을 해도 stopped 상태였다. 구글링으로 catalina.properties도 수정해보고 server.xml도 수정해보고.. 진짜 온갖 파일을 다 수정해봐도 실행이 안됐는데, 다음과 같은 방법으로 톰캣을 다시 실행할 수 있게 되었다.... 요 두개를 체크해주면 해결! 참고 링크: m.blog.naver.com/PostView.nhn?blogId=vivacarla&logNo=221530801892&proxyReferer=https:%2F%2Fwww.google.com%2F [해결]Serve..

[Spring MyBatis] Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

이 에러가 발생했다면 원인이 다양한데, 주된 원인은 다음과 같다. mapper id가 틀린 경우 Parameter bean의 field 명이 틀린 경우 sql.xml에서 정의된 namespace와 DAO에서 호출하는 namespace가 다를 경우 mapper가 정의되어 있지 않거나 스펠링이 틀린 경우 mapper에 정의된 namespace 명칭이 같은 application 내에 중복 될 경우 나는 mpper.xml 파일의 id와 DAOImp.java 파일에서 사용된 id가 대소문자가 일치하지 않아 발생했었다.