분류 전체보기 89

[TIL][Krafton Jungle] 1주차 - (4) : 알고리즘 공부

오늘은 쪽지 시험도 보는 날인데 무슨 알고리즘에 관해 나왔는지도 추가해놓았다. 우선순위 큐(Priority Queue) 우선 순위 별로 dequeue()하는 큐이다. 삽입 후 우선순위 탐색 방식을 사용하면 inqueue()할 때는 O(1)이지만 dequeue()는 우선순위 알고리즘으로 탐색하기에 시간복잡도가 O(N)이 된다. 우선순위 정렬 삽입 후 queue() 방식을 사용하면 inqueue()할 때 O(NlogN)의 시간이 걸리고 dequeue()때는 O(1)이 된다. 이진트리 우선순위 큐 방식을 사용하면 inqueue()할 때는 트리의 높이만큼 교환이 발생하므로 O(logN)의 시간복잡도를 가지고, dequeue()는 트리의 꼭대기를 추출하고 트리의 높이만큼 교환이 발생되므로 O(logN)이다. 따라..

Jungle 2023.10.18

[TIL][Krafton Jungle] 1주차 - (3) : 알고리즘 공부

월요일이 돌아왔다. 다시 열심히 공부하자. 정렬 알고리즘 모든 정렬은 일단 파이썬의 리스트 배열에 들어있는 정수들을 오름차순, 혹은 내림차순으로 정렬하는 알고리즘으로 공부했다. 그리고 모든 정렬법의 개념 아이디어는 말로 풀어 적을 것이고 오름차순으로 가정한다. ps. 실제로 정렬 복잡도가 낮아 개선할 필요가 없을 경우 그냥 a = sorted(a)를 사용하면 된다. 버블 정렬 버블 정렬법의 개념은 오른쪽 혹은 왼쪽 끝에서 시작해서 반대쪽끝까지 편도로 순회하며 2개의 요소를 비교, 더 큰 값을 오른쪽으로 옮기는 방법 반대쪽 끝까지 순회를 마치면 제일 왼쪽에 있는 요소는 제일 작은 요소가 되므로 fix - > 다음 정렬시 해당 값을 제외한다. 이런방식으로 체크하는 정렬은 각 편도 순회시 fix되는 요소가 하..

Jungle 2023.10.17

[TIL][Krafton Jungle] 1주차 - (2) : 컴퓨터 시스템

본격적으로 CS 공부를 시작했으며, 컴퓨터 시스템 책을 읽으면서 이해 안되서 검색을 활용한 경우나 여러 번 되새겨 생각하게 한 부분을 기록하겠다. 1.4까지의 기본 구성 일단 단원에 들어가기 전에 이 컴퓨터 시스템을 배워야 하는 이유에 대해서 적혀있었다. 1. 프로그래머로서는 효율적인 개발과 성능을 파악한 설계가 필요한데 이를 위해 내가 짠 코드가 컴퓨터 내부에서 어떻게 돌아가는지 파악하는 것이 중요한 것이다. 2. 그리고 링크 에러를 이해하는 것은 상당히 괴로운 숙제라고 적혀있었는데, 링크를 하는 과정에 무엇이 일어나는지 , 링커가 왜 필요한지에 대해서도 이번 단원에서 배울 수 있었다. 3. 또한 시스템의 내부적 동작을 이용한 보안요소도 개발자로서 꼭 유념해야 할 요소이기도 했다. 아무튼 대충 이런식이..

Jungle 2023.10.15

[TIL][Krafton Jungle] 1주차 - (1) : 알고리즘의 희노애락에 입성

공부 포스팅은 잡소리를 최대한 줄여서 시간을 세이브해야 된다는 것을 깨달았다. 1. Chrome 확장 프로그램에서 GitHub BaekJun 연동 교육생분중에 한분이 추천해주셔서 사용해보았는데 자동 레포 생성되는 프로그램이라 매우 간편함. 덕분에 시간을 세이브 2. 알고리즘 공부 Introduction to Algorithms 책이 두꺼워서 자세하고 친절하게 나와있을 줄 알았는데 생각보다 너무 어렵다. 입문 시에 최대한 쉬운걸로 스케치를 하고 이 책을 읽는 방법으로 진행하기로 결정. Do it 알고리즘 책이 그나마 예제가 있고 코드를 분석해줘서 이해하는데 큰 도움이 됨 하지만 어려운 재귀함수 같은 부분에서는 봐도 모르겠음 (극 난이도 상) 현재 N-Queen 알고리즘을 풀고 있는데 재귀함수를 사용해서 십..

Jungle 2023.10.15

[WIL][Krafton Jungle] 0주차 - 3일만에 웹 서비스 만들기

정글에 들어온 후 처음으로 쓰는 공부 기록 포스팅 포스팅에 들어가기 전에 간단히 소감을 말하자면 너무 설렌다. 0주차가 끝난 지금 시점에 점점 내 스스로 공부하는 법을 배우고, 능동적으로 공부하면서 재미를 느끼고 있다는 것이 나에게 더 활력을 준다. 앞으로도 이 감정을 쭉 간직할 수 있기를! 0주차 주제 - 뭐든지 '돌아가는 웹 서비스' 를 만드세요. 0주차 발제 내용이 단기 미니 프로젝트라는 걸 알고 있었다. 하지만 현실을 부정하며 대비하지 않은 나에게 역시 폭풍처럼 몰려오는 공부량.. 처음 조가 배정된 후 서로 다른 곳에서 서로 다른 공부를 해온 사람들과 팀이 되어 3일만에 웹 서비스를 만드는 것은 절대 쉬운 일이 아니었다. 게다가 우리 조원 모두 적극적이고 의견도 확고해서 의견 취합하는데에도 에너..

Jungle 2023.10.15

찬찬히 나를 돌아보는 시간

10일 점심에 정글을 들어온 후 4일이 지났다. 이 곳에서의 4일은 밖에서의 나태한 나의 한달과 같았다. 개발자로 성공한 여러명의 코치님과 원장님, 의장님을 뵈었고, 그 분들께 개발자로서의 경험들과 사회에서의 지켜야 될 모습들 그외의 모든 조언들이 나에게 수없이 박히면서 짧은 시간 내에 많은 교훈들을 느끼고 배울 수 있었다. 4일은 짧은 시간이었지만, 나에게 남은 5개월이 얼마나 나를 성장하게 만들어 줄지 예상할 수 있는 나에게는 농도가 짙은 시간들이었다. 내가 자주 사용하는 서비스의 채용 공고를 보고 웹 개발이 하고 싶어지게 된 3학년 말부터 벌써 2년이 지났다. 그때는 전자공학과 수업 중 가끔있던 알고리즘 과목에서 내가 재능이 있다고 생각했다. 근데 실제 취업 준비를 하러 개발자준비생으로 사회에 뛰어..

Jungle 2023.10.14

[JAVA] 인터페이스의 기본부터 응용까지 (2) - 인터페이스 사용법 익히기

실패는 나를 절대 실패시키지 못한다. 실패라 믿고 포기하는 순간 나는 실패한다. 오늘은 전 축구선수 이영표님께서 하신 말씀에 되게 감명받아 문구로 시작해봅니다. (실패했다고 착각하지 맙시다 모두 !) 이전 포스팅에서 인터페이스가 무엇인지, 왜 사용하는지 알아봤으니 이제 사용해볼 차례입니다. 인터페이스 선언하기 public interface ridable{ static void ride(){ System.out.println("i can ride"); } static void stop(){ System.out.println("stop!"); } } 간단하게 달리는 것들을 위한 인터페이스를 생성해보았는데요! 공부하면서 자연스레 알게된 코드 컨벤션으로 인터페이스는 기능이 정의할 메소드들의 집합이기 때문에 -a..

Java 2023.05.24

[JAVA] 인터페이스의 기본부터 응용까지 (1) - 인터페이스? 왜 사용하나요?

오늘 포스팅의 한줄 목표 - "달인이 되기 위해선 칼질부터 연습하라" 기본기를 충분히 다지기 위하여 프로그래밍의 중요한 요소 중 하나라고 생각되는 인터페이스에 대해 공부해 봅시다 ! 인터페이스, 너는 누구냐. 먼저 인터페이스를 만들기 위해 인터페이스가 무엇인지 ChatGPT에 물어봤습니다. 인터페이스가 무엇인지 정리해보자면, 인터페이스란, 클래스(인터페이스)와 클래스(인터페이스를 구현한 구현 클래스) 사이의 계약과 같으며, 인터페이스를 구현한 클래스는 인터페이스가 정의한 모든 메서드를 구현해야하는 계약조건을 가진다. (오호.. 너무나 당연한 소리;) 무엇인지는 감이 옵니다. 우린 이미 사실 알고 있었잖아요 그쵸? (몰랐다면 이 포스팅은 당신을 위한것) 그럼 인터페이스를 왜 사용하는지 또한 안 물어볼 수 ..

Java 2023.05.23

🧐UUID란? 언제 UUID를 사용해야 하는가?

CNU SW 아카데미라는 교육의 교육생으로 참가하였을 때, 팀 프로젝트로 웹 서비스를 제작했었다. 이때 DB 스키마를 첫 설계할 때 데이터의 ID를 명시하는 UUID에 대해 처음 접하게 되었고, 이때 정리해 놓은 UUID에 대한 정보들을 포스팅 해볼까 한다. 📔UUID란 무엇일까? UUID란 범용 고유 식별자로, 네트워크 상에서 서로 모르는 개체들을 구별하기 위해 만들어진 방법! 나는 처음에 UUID가 그러면 '다른 세상 속 어떤 다른 개체 데이터와 중복되지 않을까?' 하는 생각을 했었다. 하지만 그런 걱정은 필요 없다. 이는 UUID의 장점이기도 하기에 걱정하지 않아도 되며, 그게 바로 UUID의 장점 중 하나이다. 📔UUID 규칙 36개의 문자 (32개 문자 , 4개의 하이픈)로 된 8 - 4 - 4..

DB 2023.05.02