생각하기 95

네트워크의 기본 개념 요약

기본 용어 노드 : 네트워크에 사용되는 장비, 단말, 시스템 링크 : 노드와 노드간의 논리적인 회선 라우팅 : 네트워크에서 경로를 설정해주는 과정 서버 : 서비스를 제공하는 시스템 클라이언트 : 서비스를 제공받는 시스템 다중화 / 역다중화 다중화 ( Multiplexing ) : 송신측에서 하나의 회선을 시간, 주파수, 코드로 나누어 많은 데이터를 싣는 것 역 다중화 ( De-Multiplexing ) : 수신 측에서 하나의 회선에 다중화되어 온 데이터를 각 채널별로 분리시키는 것 캡슐화 / 디캡슐화 캡슐화 Encapsulation : 송신측에서 데이터에 제어정보를 부가하는 과정 디캡슐화 De-Encapulation : 수신측에서 데이터에 제어정보를 제거하는 과정 암호화 / 복호화 암호화 : 암호키를 사..

알고리즘 - Search 기초개념

어떤 알고리즘을 사용해야 검색이 빠른지 알아보자. 어떤 자료구조를 사용해야 하는지 배워야 하는 것처럼 어떤 알고리즘을 어떤 상황에 사용해야하는지, 자료구조와 알고리즘의 조합이 어떤게 가장 효율적인지 공부해야한다. 검색 관련 패밀리 종류 Binary Search (이진검색) Linear Search (선형검색) 다른 종류로는 Sort (정렬)알고리즘이 있다. 먼저 선형검색 (Linear Search)는 가장 검색을 하기 위한 '자연스런' 방법일 수 있다. 선형검색은 자료를 나열해놓고, 0번째 인덱스부터 하나씩 차근차근 찾는값과 일치한지 확인하면서 넘어간다. 이런 선형검색의 최악의 경우는 찾는 값이 없거나, 마지막 위치에 있을 경우 이다. 이말인즉슨, 배열이 커지면 커질수록 선형검색을 하는 시간 또한 길어지..

알고리즘 - Array 기초개념

Array (배열) 이란? 데이터들을 하나의 그룹으로 묶어서 효율적인 관리를 하기위한 자료구조이다. 알고리즘에서 배열을 공부하기 이전에 Time Complexity (시간 복잡도)를 알아야 한다. Time Complexity 란? 데이터 구조의 오퍼레이션의 속도를 측정하는 방법이다. 이 방법은 실제 시간을 측정하는 것이 아닌, 얼마나 많은 단계(step)가 있는가로 측정한다. 왜냐하면 하드웨어의 성능, 환경등 다른 요소에 의해 같은 코드여도 다른 변수로 인해 결과값이 달라질 수 있기 때문에 작은 단계(step)로 값을 얻을 수 있느냐가 중요한 척도가 된다. 메모리의 관점에서 Array 는 어떤가? 2가지의 메모리가 있다. volatile (휘발성) 메모리: 휘발성 메모리중 RAM 은 Random Acce..

프로그래머스 - Java 베스트앨범

코딩테스트 풀이.. 알고리즘이나 코딩테스트를 공부하지만 아직 너무어렵다.. 혼자풀기엔 힘들어서 구글링으로 블로그글중 이해하기 쉽게 쓴 글이 있어서 가져왔다. https://codevang.tistory.com/293 문제 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 ..

프로그래머스 - SQL 우유와 요거트가 담긴 장바구니

SQL 코딩테스트문제다. 문제 CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가격을 나타냅니다. NAME TYPE ID INT CART_ID INT NAME VARCHAR PRICE INT 데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 예시 예를 들어 CART_PRODUCTS 테이블이 다음과 같다면 CART_P..

알고리즘의 대한 공부

알고리즘 (Algorithm) 간단히 말해 문제를 해결하기 위한 과정. 혹은 명확하게 정의되고 순서가 있는 유한한 갯수의 규칙으로 이루어진 집합이라 한다. 많은 사람들이 코딩테스트 == 알고리즘이라고 하지만, 이는 반만 맞는 말이라고 생각한다.. 결국 코딩테스트도 문제를 해결하는 법을 아는지 테스트하는 일련의 과정일 뿐이고, 알고리즘이라는 카테고리에 소속되어 있는 것. 알고리즘을 처음 접하는 나같은 사람들이 개념정리를 하고 갔으면 하는 생각으로 글을 써보겠다. 비전공자 입장에서 알고리즘은 정말 알 수 없는 미지의 세계 그 자체다.. 어렴풋이 듣기로 알고리즘이 문제푸는방법쯤으로 알고 있던 나랑 아마 비슷할거라고 생각한다. 알고리즘의 프로그래밍으로 문제를 해결하는 방법에는 여러가지가 있지만, 입문자, 신입,..

프로젝트 - 개발자 포트폴리오 만들기 2

서론 이전 글에서 신입 개발자로서 이력서 및 포트폴리오를 보여줄 사이트를 만드려고 했다. 근데 구상하면서 생각해보니, 굳이 내가 Java 개발자로서 코드로 무언갈 보여줄 사이트도 아닌 그저 내 이력서를 보여주기 위한거라면, 그냥 vue.js 에서 템플릿가져와서 만들어도 충분한데 굳이 사이트를 만들어야 하나 싶었다.. 그러다 노션으로 이력서를 만드는 분들이 있어서 보니 오히려 사이트로 보여주는 건 FrontEnd 개발자가 아닌 이상, 플러스 요인이 아닐수도 있다는 생각이 들어 노션에 이력서와 포폴을 올리는 방식으로 진행하기로..! 급 결정! 먼저 참고한 개발자분들의 노션 이력서 & 포폴이다. 예시로 만들어두신분.. 타고타고 들어와서 어떤분이 만드셨는지 못찾겠다.. https://www.notion.so/d..

Programming/Project 2021.09.12

프로젝트 - 개발자 포트폴리오 만들기

서론 개발자로서 취업을 하기 위해 국비학원을 다니면서 준비하고 있다. 문득, 개발자 커뮤니티를 돌아다니다 포트폴리오용 사이트를 만들었다는 글을 보곤 나도 저렇게 나만의 포트폴리오 사이트를 만들면 어떨까? 라는 생각을 했다.. 단순히 이력서에 pdf로 된 심심하기만한 포트폴리오는 서류전형에서 광탈할것이 뻔해보였고, 그 이력서로 합격하는건 어떤 회사든 어려울 것같다는 생각이 들었다. 그렇다면 해야할것은 개발자들은 어떻게 포트폴리오용 사이트나, 포트폴리오를 구성하는지 참고하는 것이 먼저! 구글링을 통해 잘나가는 개발자부터 신입개발자분들의 포트폴리오를 참조하기 위해 정리했다. 여기서 내가 참고해야할 중요사항은 1. 이력서 혹은 포트폴리오의 구성(디자인, 레이아웃등) 2. 이력서의 중요포인트나 필요사항을 기술했는..

Programming/Project 2021.09.12

JAVA - 제어문 (Controll statment)

제어문이란 ? 자바 인터프리터는 프로그램을 위에서 아래로, 오른쪽에서 왼쪽으로 읽어갑니다. 이 프로그램의 흐름을 변경하는 것을 제어문이라고 합니다. 제어문의 종류 조건문 : 조건에 따라 다른 문장이 수행되도록 제어함 반복문 : 특정 문장들을 반복해서 수행하도록 제어함 분기문 : 반복문을 종료시키거나 재실행 시키는등의 제어기능 1. 조건문 조건문의 종류는 if문 , switch문 이 있습니다. 먼저 if 문은 조건식의 결과 값이 true 면 문장1이 수행되지만, false면 실행되지 않고 else if문의 다음 조건식2로 넘어갑니다. 그렇게 계속해서 해당 조건식의 결과 값이 true가 될때까지 수행하며, 결국 일치하는 값이 없다면 마지막에 else 문을 통해 문장4를 수행하고 종료됩니다. if 문 if(조..

Programming/JAVA 2021.07.30

JAVA - 연산자 (Operator)

연산자는 말 그대로 연산 ( 계산 ) 을 위해 사용하는 것을 의미합니다. 연산자를 배우기 이전에 출력메소드를 통해 값을 출력하는 것을 알아보겠습니다. 출력문 System.out.print(); = ()안에 변수,문자,숫자,논리 값을 모니터에 출력해주는 메소드 System.out.println(); = 위에 print문과 동일하지만 출력 후 자동으로 출력창에 줄바꿈을 해주는 메소드 System.out.printf(); = 정해져있는 형식에 맞춰서 그 형식에 맞는 값(변수)를 줄바꿈하지 않고 출력 이번엔 입력문 Scanner 클래스를 통해 값을 입력하는것을 알아보겠습니다. 입력문 스캐너는 java.util.Scanner 클래스이기 때문에 소스 맨 앞에 import를 통해 호출해와야합니다. import jav..

Programming/JAVA 2021.07.30