목록전체 글 (66)
Dev.J

[목차] 0. 기획자로 서비스를 만든 이유 1. 기획 경선, 기디/개발자 팀 빌딩 2. '레코드림'의 앱잼 3. 서비스 기획의 경험, 그리고 기획과 개발 4. 배운 것, 아쉬운 것, 보완할 것 etc. 생각보다 업로드가 늦어졌지만 이어서 글을 적어본다. 현재 애플 앱스토어에 등록되어있는 레코드림 앱 링크로 남긴다. (안드로이드는 릴리즈 진행중) https://apps.apple.com/kr/app/%EB%A0%88%EC%BD%94%EB%93%9C%EB%A6%BC-recordream/id1645675304 레코드림 RecorDream 감성적인 꿈 기록, 레코드림과 함께 해요. 오직 꿈만을 위한 아카이빙 서비스 레코드림에서 당신의 이야기를 펼쳐보세요. - 꿈 카드를 활용해 감성적으로 꿈의 제목, 감정, ..

요즘 네트워크를 공부하고 있는데 널널한 개발자TV의 네트워크 기초 강의를 참고하고 있다. 강의 링크 : https://youtu.be/k1gyh9BlOT8 강의를 통해 배운 내용을 개인 노션 뿐만 아니라 개발 블로그에도 남겨보려한다. 특별한 규칙없이 중요하다고 강조되거나 내가 정리해두고 싶은 부분을 정리할 예정이다. Switch/Switching Switch(교차로의 집합체인 고속도로)가 Router(교차로)라고 생각해도 된다. 데이터를 가지고 있는 Packet이 Router에 도착했을 때 Routing Table을 참고해서 최적의 경로를 찾는 스위칭 Switching 을 한디다. Router는 기본적으로 L3 스위칭(네트워크 계층 IP)을 한다. 데이터 단위 정리 File I/O에서는 "Stream d..

An error has occurred. See error log for more details. java.lang.ExceptionInInitializerError An error has occurred. See error log for more details. Could not initialize class com.thoughtworks.xstream.converters.collections.PropertiesConverter 다른 블로그 글들은 대부분 >이클립스

매번 공부하는 것을 깃허브에 올리는 편이라 github에서 레포지토리를 자주 만드는데 만들 때마다 말썽이라서, 깃허브와 프로젝트를 쉽게 연동하는 방법을 정리해보려한다. Gitkraken을 사용하더라도 프로젝트를 로컬에서 생성하고, 연동할 때는 오직 IntelliJ와 Github만 사용하는 것이 정신 건강에 좋다. 1. 인텔리제이로 로컬에 프로젝트를 생성한다. 난 이때 미리 폴더를 만들어둔다. 2. 상단에서 File - New - Project 를 누른다. 3. 미리 만들어둔 폴더에 프로젝트명을 입력하고 경로를 확인한다. 이때 Create Git Repository 를 클릭하면 좋다. (자동으로 gitignore 같은 파일을 만들어줘서 편하다) 4. 상단 Git - GitHub - Share Project..
[목차] 0. 기획자로 서비스를 만든 이유 1. 기획 경선, 기디/개발자 팀 빌딩 2. '레코드림'의 앱잼 3. 서비스 기획의 경험, 그리고 기획과 개발 4. 배운 것, 아쉬운 것, 보완할 것 etc. 마지막 SOPT인 30기는 기획 파트로 활동하였다. 29기엔 서버 파트로 활동하였기에 왜 기획파트로 지원했는지 궁금해하는 사람들이 많았던거 같다. 이유를 간단하게 말하자면 '흥미'였다. 솝트 활동을 시작했던 2021년 이전에는 it 서비스에 대해 전혀 알지 못했다. 29기 서버로 활동하며 개발 시에 고려해야 하는 것 / 기획자 & 클라이언트와의 소통 방법 등, 특히 무박2일 해커톤 '솝커톤'과 3주 장기 협업 프로젝트 '앱잼'을 통해 많은 것을 체득하게 되었다. 그 과정 속에서 기획이라는, PM이라는 포지..

선택 정렬 보통 배열이 정렬되어 있으면 정렬되지 않은 배열보다 더 쉽게 탐색할 수 있다. 정렬을 위한 알고리즘 중 선택정렬을 배열 안의 자료 중 가장 작은 수(혹은 가장 큰 수)를 찾아 첫 번째 위치(혹은 가장 마지막 위치)의 수와 교환해주는 방식의 정렬이다. 선택 정렬은 교환 횟수를 최소화하는 반면 각 자료를 비교하는 횟수는 증가한다. 실행 우리에게 5, 1, 6, 2, 4, 3이란 배열이 주어지고 선택 정렬을 이용하여 정렬해줘야 한다면 의사 코드를 과 같이 만들 수 있을 것이다. 코드 1 ① 프로그램은 array라는 배열의 첫 번째 자리(5)에서 시작한다. ② 가장 작은 원소를 찾기 위해 5를 (1, 6, 2, 4, 3)와 비교한다. ③ 1이 가장 작은 값이기 때문에 5의 위치와 교환한다. ④ 이제 ..

버블 정렬 정렬되지 않은 리스트를 탐색하는 것 보다 정렬한 뒤 탐색하는 것이 더 효율적이다. 정렬 알고리즘 중 하나는 버블 정렬이다. 버블 정렬은 두 개의 인접한 자료 값을 비교하면서 위치를 교환하는 방식으로 정렬하는 방법을 말한다. 버블 정렬은 단 두 개의 요소만 정렬해주는 좁은 범위의 정렬에 집중한다. 이 접근법은 간단하지만 단 하나의 요소를 정렬하기 위해 너무 많이 교환하는 낭비가 발생할 수도 있다. 실행 버블 정렬은 리스트 안에 들어있는 두 개의 인접한 수를 비교하고 만약 순서에 맞지 않는다면 교환해주는 방식으로 작동한다. 을 보면 5, 1, 6, 2, 4, 3의 순서로 들어있는 배열이 있다. 버블 정렬을 사용하여 정렬해주고 싶다면 다음과 같은 의사 코드로 만들어볼 수 있다. ① 제일 먼저 배열 ..

선형 탐색 찾고자 하는 자료를 탐색하는 데 사용되는 다양한 알고리즘이 있다. 그 중 하나가 선형 탐색이다. 선형탐색은 원하는 원소가 발견될 때까지 처음부터 마지막 자료까지 차례대로 탐색한다. 이렇게 하여 선형 탐색은 찾고자 하는 자료를 찾을 때까지 모든 자료를 확인해야 한다. 효율성 그리고 비효율성 선형 탐색 알고리즘은 정확하지만 아주 효율적이지 못한 방법이다. 리스트의 길이가 n이라고 했을 때, 최악의 경우 리스트의 모든 원소를 확인해야 하므로 n번만큼 실행된다. 여기서 최악의 상황은 찾고자 하는 자료가 맨 마지막에 있거나 리스트 안에 없는 경우를 말한다. 만약 100만 개의 원소가 있는 리스트라고 가정해본다면 효율성이 매우 떨어짐을 느낄 수 있다. 반대로 최선의 상황은 처음 시도했을 때 찾고자 하는 ..

우리가 컴퓨터에 입력한 자료를 출력형태로 만들기 위해서는 컴퓨터의 처리과정, 즉 명령어들의 순서상 처리가 필요한데 이를 알고리즘이라고 한다. 컴퓨터의 알고리즘도 입력된 자료가 출력 형태로 나가기 위해 순서에 따라 실행해야 하는 명령어들을 보다 효율적으로 나열하게 된다면 시간과 공간을 단축할 수 있다. 알고리즘 컴퓨팅은 입력을 받아 그 입력을 처리한 후 출력하는 과정이다. 알고리즘은 입력에서 받은 자료를 출력형태로 만드는 처리 과정을 뜻한다. 즉, 알고리즘이란 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열을 말한다. 이러한 일련의 순서적 규칙들의 나열 방법에 따라 알고리즘의 종류가 달라진다. 같은 출력값이라도 알고리즘적 순서 나열에 따라 출력값에 도달하는..

인공 지능 2016년 봄, 이세돌과 알파고의 대국으로 인공지능에 대한 관심이 크게 일었다. 이러한 인공지능은 컴퓨터 과학의 개념이 세계적으로 영향을 미칠 수 있다는 것을 보여주는 사례이다. 인공지능이 어떻게 정보를 처리하는지 알아보자. 자연어 처리 자연어란 인간이 일상적으로 사용하는 언어로, 평소에 사용하는 언어이기 때문에 같은 의미라도 표현 방법이 다양한 것이 특징이다. 컴퓨터는 기계어를 사용하기 때문에, 명령을 내리기 위해서 규칙이 정해져 있는 프로그래밍 언어를 이용한다. 그런데 컴퓨터는 어떻게 인간의 일상 언어를 이해할 수 있을까? 컴퓨터가 사람의 언어를 기계적으로 분석하여 컴퓨터가 이해할 수 있는 형태로 바꾸어 처리하는 것을 자연어 처리라고 한다. CS50 강의 영상에 나온 ELIZA와 같이 문장..