길고 길었던 한학기가 드디어 마무리가 되었습니다...! 계절학기가 시작된 이 시점.. 관통 진행했던 일주일이 아득하네요.... (우리는 그때 미쳤었죠..) 오늘은 1학기 최종 관통 프로젝트를 어떻게 진행했는지에 대해 후기를 남겨보겠습니다! 저와 페어는 "챌린지를 통해 운동을 같이 할 수 있는 서비스"를 목표로 프로젝트를 진행했습니다. 사용자는 직접 유튜브에서 원하는 미션을 검색해서 본인만의 챌린지를 만들 수 있습니다. 등록된 챌린지는 타 사용자들이 참여해서 챌린지를 함께 수행할 수 있도록 서비스를 계획했습니다. 저희는 다음과 같은 일정으로 프로젝트를 진행했습니다. 1.목업 2.ERD 3.API설계 4.서비스 개발 5.발표자료 만들기 6.최종발표 모든 일정관리 및 자료들은 페어와 노션을 공유하여 관리하였고..
목차 [면접을 위한 CS 전공지식 노트] 는 C++ 기반의 자료구조를 다루고 있다. 자료구조는 크게 선형과 비선형의 구조로 나뉜다. 💡 비선형 자료 구조란? : 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말한다. 대표적인 자료구조 선형구조 : 배열, 연결리스트, 스택, 큐, 데크 비선형구조 : 그래프, 트리, 힙, 우선순위 큐, 맵, 셋, 해시 테이블 1. 그래프(Graph) 💡 그래프 : 그래프는 정점과 간선으로 이루어진 자료 구조를 말한다. 정점(vertex) : 위치 (=node) 간선(edge) : 위치 간의 관계, 즉, 노드를 연결하는 선 outdgree : 해당 정점으로 나가는 간선 indgree : 해당 정점으로 들어오는 간선 정리하자면, 그래프는 정점과 간선으로 이루어진 집합이..
목차 [면접을 위한 CS 전공지식 노트] 는 C++ 기반의 자료구조를 다루고 있다. 자료구조는 크게 선형과 비선형의 구조로 나뉜다. 💡 선형 자료 구조란? : 자료를 구성하는 데이터를 일렬로 나열되어 있는 자료 구조를 말한다. 대표적인 자료구조 선형구조 : 배열, 연결리스트, 스택, 큐, 데크 비선형구조 : 트리, 그래프 1. 연결 리스트(Linked List) 💡 연결리스트 : 데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화시킨 자료구조이다. 삽입/삭제 : O(1) 탐색 : O(n) 연결리스트는 크게 세 가지로 구분 된다. 싱글 연결 리스트 이중 연결 리스트 원형 이중 연결 리스트 연결리스트의 가장 큰 장점은 리스트의 길이가 가변적이란 것이다. 메모리 할당이 따로 필요가 없기 때문에 삽..
목차 1. 자료구조 💡 자료구조란? : 효율적으로 데이터를 관리하고 수정, 삭제, 탐색, 저장할 수 있는 데이터의 집합 우리가 자료구조를 배우는 이유는 다음과 같다. 데이터를 체계적으로 저장하고, 효율적으로 활용할 수 있다. 자료구조를 알면 특정한 상황에 놓인 문제를 수월하게 해결할 수 있다. [면접을 위한 CS 전공지식 노트] 는 C++ 기반의 자료구조를 다루고 있다. 2. 복잡도 좋은 알고리즘이란 실행 시간도 짧으면서 저장공간도 적게 쓰는 알고리즘이다. 하지만 두 가지를 다 만족하기는 어렵고, 시간과 공간은 대체적으로 반비례적인 경향이 있다. 최근에는 대용량 시스템이 보편화 됐으므로 프로그램을 구현할 때에는 공간복잡도보다는 시간복잡도가 우선이 된다. 2.1 시간 복잡도 (Time Complexity)..
목차 1. 스트림(Stream)이란? 자바의 스트림은 컬렉션에 저장되어 있는 엘리먼트들을 하나씩 순회하면서 처리할 수 있는 코드 패턴이다. 1. 스트림의 특징 1) 데이터 구조가 아닌 '데이터의 흐름' 2) 데이터를 변경하지 않고 결과를 새로운 스트림에 저장 3) 필요한 데이터만 메모리에 로드해 처리 4) 데이터에 한 번만 접근 그렇다면 스트림은 왜 사용할까? 2. 스트림을 사용하는 이유 1) 스트림은 배열이나 컬렉션(List, Set, Map)으로 원하는 값을 얻을 때 for 문 도배를 방지할 수 있다. 연속된 자료를 처리할 수 있는 인터페이스를 제공하기 때문에, 효과적으로 사용 가능하다. 2) 람다식을 이용해서 코드의 양을 줄이고 간결하게 표현함으로써 코드의 가독성이 높아진다. 3) 병렬처리가 가능하..
목차 1. 제네릭이란? 제네릭이란 Java 5부터 도입한 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 말한다. 자세히 말하자면, '데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법'이다. 우리는 이미 제네릭을 자주 사용하고 있다. 흔히 사용하는 ArrayList, Stack, LinkedList 등에 제네릭이 사용된다. 객체 객체명 = new 객체(); 의 형식으로 사용할 때, 여러가지 데이터 타입들이 괄호 안에 들어가는 것이다. 만약 우리가 어떤 자료구조를 만들어 배포한다고 가정해보자. 이때, Integer에 대한 클래스, String에 대한 클래스 등 타입을 따로 만들 것인가? 그것은 너무 비효율적이다. 이러한 문제를 해결하기 위해 사용..
목차 1. 서론 바야흐로 서늘한 9월 어느날.. 과목평가로 일타싸피를 진행한다는 공지가 내려왔다. 일타싸피의 명성은 익히 들어 마음의 준비를 하고 있었던터라 살짝 기대를 하고 있었다. 일타싸피는 직접 코드를 짜서 당구를 치는 프로그램이다! 싸피가 좋아하는 게이밍피케이션(?)이다. (약간 스타트캠프 때 로봇의 냄새가 폴폴...) 평가는 큰 걱정할 필요가 없는 것이, 시험 당일 샘플 코드를 주는데, 샘플 코드에서 코드 몇줄만 추가하면 쉽게 통과할 수 있다. 두근두근하는 마음으로 교수님께서 주신 zip 파일을 풀어보니.. 아니, .exe 파일밖에 없지 않은가... 🤦🏻♀️ (.exe는 맥os에서 설치되지 않는다) mac 유저는 어떡하란 말인가.. (SSAFY의 맥혐오 멈춰!) 사실 이랬던 적이 한 두번이 아..
mac에서 MySQL 을 깔아보자! MySQL을 직접 설치해도 되지만, mac에는 homebrew 라는 간편한 패키지 관리 프로그램이 있기 때문에, homebrew로 설치를 진행한다. 설치가 안 되어 있다면 homebrew 설치를 진행하고 온다. https://hi-claire.tistory.com/20 Homebrew 패키지 관리자 설치하기(설치, 검색, 확인, 삭제, 업데이트) 🍺 Homebrew란? macOS 용 패키지 관리자이다. 터미널에서 명령어를 작성하여 사용자가 원하는 프로그램을 설치, 삭제, 업데이트를 손쉽게 할 수 있다. 개발자용 앱스토어와 같달까..?🤔 Homebrew를 사 hi-claire.tistory.com 1. MySQL 설치하기 mysql을 설치하기 앞서 먼저 homebrew를..
🍺 Homebrew란? macOS 용 패키지 관리자이다. 터미널에서 명령어를 작성하여 사용자가 원하는 프로그램을 설치, 삭제, 업데이트를 손쉽게 할 수 있다. 개발자용 앱스토어와 같달까..?🤔 Homebrew를 사용하면 프로그램 설치 시 불필요한 프로그램이 다운되거나, 업데이트를 할 때 기존의 데이터가 남아 있는 경우 등 다양한 상황을 방지할 수 있다. 아주 강력하고 간편한 패키지 관리자이다. 1. 설치방법 homebrew 홈페이지에 접속하여 코드를 복사한다. Homebrew Homebrew The Missing Package Manager for macOS (or Linux). brew.sh /bin/bash -c "$(curl -fsSL )" 1️⃣ Spotlight(cmd + space) 후 터미널..
1. 발단 백준과 SWEA 문제풀이양이 많아지다보니 가독성이 떨어져서 프로젝트 폴더를 나눌 필요성을 느꼈다. 새로운 프로젝트 폴더를 만들고 기존의 BOJ 패키지와 SWEA 패키지를 옮겨 담았다. 싸피 컴퓨터에서는 분명 잘 동작하던 것이 git push 이후 개인 노트북에 pull 을 하니 프로젝트 폴더가 자동적으로 import 되지 않았다. Eclipse 내에서 내 프로젝트 폴더가 보이지 않았던 것이다. 사실 이런 경험이 몇 번 있었는데, 귀찮아서 그냥 원래 폴더에 다시 담아 쓰다가 너무 불편해서 이참에 오류를 수정해보고자 한다. 2. 전개 인터넷에 나온대로 몇가지 방법들을 수행해보았다. 1. 직접 import 시키기 여타 다른 블로그들처럼 직접 import를 시키려니 이상하게 프로젝트 파일이 인식이 되..