본문 바로가기

분류 전체보기145

Intellij maven 프로젝트 생성방법(새로운 ui) jpa를 공부하려고 maven 프로젝트를 생성하는데 intellij의 프로젝트 생성 ui가 바뀌어서 조금 해맸다. 맨 처음 ui에서 new project를 클릭하면 위 화면이 뜨는데, Maven Archetype을 클릭하면 절대 안되고!! New Project에서 Maven을 클릭하고 Advanced Settings에서 groupid, artifactid를 설정하고 create하면 된다. 별거 아닌데 괜히 시간을 낭비하지 말자! 2022. 7. 26.
맥 h2, zsh permission denied 오류 문제 해결 권한이 없어서 생긴 문제, spring 시작할려고 h2 깔았는데 문제가 생겨서 조금 난감했지만 권한만 주면 쉽게 해결 가능. 터미널에서 해당 h2.sh파일이 있는 디렉토리에서 chmod755 h2.sh 명령 입력해주면 권한을 가지게 됨. chmod577 h2.sh 그 이후에 ./h2.sh 실행하면 h2가 실행된다. ./h2.sh chmod755의미가 궁금해서 대충 찾아 봤는데 읽기:4, 쓰기:2, 실행:1 이런식으로 권한에 값을 부여하고 세자리수의 의미는 각각 첫번째 자리: 소유자 권한, 두번째 자리: 그룹 사용자 권한, 세번째 자리: 기타 사용자의 권한이다. 그래서 chmod755는 소유자에게 모든 권한(4+2+1)을 주고 그룹, 기타 사용자들에게는 (4+1)읽기와 실행 권한을 주는 의미이다. 맥은 항.. 2022. 7. 26.
[컴퓨터네트워크] TCP Congestion Control Congestion 인터넷 상에서 congestion이 일어나는 원인은 다음과 같다: 1. Connectionless packet-switched(Udp, IP같은) 네트워크에서 무조건으로 패킷을 보낼때, 이때 packet switched 네트워크에서는 속도에 상관없이 packet을 보내기 때문에 이걸 받는 쪽에서 감당 못할때 congestion 발생. 2. Router에 있는 큐가 꽉차서 더 이상 패킷을 저장할 수 없을때 congestion 발생한다. 이러한 congestion은 결국 packet을 잃거나 delay가 늘어나는 현상이 발생한다. 이러한 현상을 해결하기 위해 Congestion Control을 한다. Congestion Control Congestion Control의 목적은 delay를.. 2022. 5. 24.
[컴퓨터네트워크] 1. Introduction 현재 우리 인터넷의 크기는 원형의 매우 복잡한 연결선과 점들로 이루어져있다고 한다. 마치 우주를 생각하면 된다라 할까... 기본적으로 네크워크 또는 인터넷이라고 하면 클라이언트와 서버라는 개념이 있어야 한다. 서버는 인터넷 서비스를 제공하는 컴퓨터이고 클라이언트는 인터넷을 사용하는 우리들의 컴퓨터이다. 그래서 위의 지도에서 대부분의 클라이언트와 서버는 지도의 가장자리에 위치해 있다. 이걸 영어로 network edge라고 한다. 반대로 network core에 있는 녀석들은 routers라고 불리는 녀석들이며 클라이언트와 서버 사이를 연결해주는 통로들이라고 생각하면 된다. network edge는 서버와 클라이언트를 연결하는데 연결하는 방식에는 두가지 방식이 있다. 첫번째 방식은 TCP이다. TCP을 사.. 2022. 1. 19.
야메 C언어 강좌: 11. 포인터(1) 이전 강좌를 작성하고 굉장히 오랜 시간이 지나서야 해당 강좌를 작성하기 때문에 이전 강좌와 연결되지 않는 부분이 있더라도 양해부탁드리고 봐주시길 바라겠습니다. 사실 야메 강좌이기 때문에 포인터에 대해서 어떻게 설명을 해야 할지 굉장히 고민이 되었습니다. 저는 포인터를 처음 배우고 이전까지 배운 내용에 대한 회의감과 C언어와 멀어지는 느낌을 받기까지 하였습니다. 하지만 개인마다 포인터를 배우고 더욱 흥미를 느끼는 사람도 있기 때문에 최대한 간단하게 포인터에 대해 얘기하겠지만 그래도 최소한의 요점정도는 적어두도록 하겠습니다. (더욱 자세한 내용을 원하시는 분들은 다른 블로그를 찾으시길 바라겠습니다) 포인터에 대해서 알기 전에 주소라는 개념을 알고 계셔야 합니다. "엥 주소????? 갑자기????" 라고 생각.. 2022. 1. 14.
[알고리즘] 삽입 정렬(Insertion Sort) 다음과 같은 순서의 숫자 정렬들이 있을 때, 삽입 정렬의 정렬 방식은 다음과 같습니다. 숫자 배열: 8 3 2 4 9 8 3 2 4 9 -> 3 8 2 4 9 -> 3 2 8 4 9 -> 2 3 8 4 9 -> 2 3 4 8 9 삽입 정렬의 정렬 방식은 왼쪽 숫자와 오른쪽 숫자를 비교해서 크기가 역순이면 서로 바꾸게 됩니다. 위의 숫자로 설명하자면 처음 8과 3을 보게 됩니다. 8은 3보다 크기 때문에 8과 3의 위치를 바꾸게 됩니다. 이렇게 되면 3과 8은 두 숫자만 보게되면 크기 순서로 이미 정렬이 완료된 상태입니다! 그 다음은 세번째 자리의 숫자인 2를 보게 됩니다. 그리고 2의 왼쪽 자리인 8을 봅니다. 8이 2보다 큼으로 8과 2의 자리를 바꿉니다. 그럼으로 3 2 8 4 9 가 됩니다. 그러고.. 2022. 1. 6.
[알고리즘] 버블 정렬(Bubble Sort) 다음과 같은 숫자들이 주어졌을 때 정렬과정은 밑과 같다. 숫자 배열 : 9 6 3 2 7 9 6 3 2 7 -> 6 9 3 2 7 -> 6 3 9 2 7 -> 6 3 2 9 7 -> 6 3 2 7 9 -> 3 6 2 7 9 -> 3 2 6 7 9 -> 2 3 6 7 9 버블 정렬의 시간 복잡도는 선택 정렬과 마찬가지로 O(N^2)이며 그렇게 효율적인 정렬 방법은 아니다. //bubble sort #include #include int main(){ clock_t start, end; double result; start = clock(); int N; std::cout > N; int* arr = new int[N]; std::cout > arr[i]; } char show_process; while(1.. 2022. 1. 6.
[알고리즘] 선택 정렬(Selection Sort) 숫자 배열 7 3 2 1 4 가 있을 때 선택정렬의 진행순서는 아래와 같다. 1 3 2 7 4 -> 1 2 3 7 4 -> 1 2 3 4 7 아주 쉽게 설명하면 범위 안의 숫자 중 가장 작은 숫자를 맨 앞에 숫자와 바꾸고 범위를 하나씩 좁히는 식의 정렬 방법이다. 시간 복잡도는 O(N^2)임으로 굉장히 좋지 못하다. // Selection Sort #include #include int main(){ clock_t start, end; double result; start = clock(); int N; std::cout > N; int* arr = new int[N]; std::cout > arr[i]; } char show_process; while(1){ std::cout > show_process.. 2022. 1. 6.
[정보개] Week1 정리 중요 전문용어 정리: Attack: 의도적인 파괴성 공격시도(버퍼 오버플로우) Threat: 의도적일수도 또는 의도가 없는 공격시도(자연재해, 사람의 실수) Vulnerability: 공격대상이 되는 취약점(버퍼 오버플로우) Exploit: 구현된 공격(코드) Vulnerability는 security bug와 비교가 되는데 security bug는 소프트웨어와 관련된 취약점이라고 생각 해커들은 이들(취약점)을 어떻게 사용하는가 1. 취약점을 찾기 위한 Reconnassance을 사용 2. 악용코드 구현 3. 자신의 로그 파일 삭제해 증거 인멸 일반적인 threats Disclosure: 권한없이 정보 접근 Modification: 권한없이 정보 변경 Deception: 잘못된 데이터 접근 Disrupt.. 2021. 12. 27.