분류 전체보기

CodeStates_BE_44/TIL

[DB] SQL, NoSQL

SQL SQL이란? SQL(Structured Query Language)은 데이터베이스 언어로 주로 관계형 데이터베이스에서 사용하며 구조화된 쿼리 언어라고 할 수 있습니다. SQL은 아래와 같은 언어적 특성을 갖습니다. 대소문자를 구분하지 않는다. (서버 환경이나 DBMS 종류에 따라 데이터베이스 또는 필드명에 대해 구분하기도 한다.) 반드시 세미콜론(;)으로 끝나야 한다. 고유의 값은 따옴표(’’)로 감싸줘야 한다. 객체를 나타낼 때는 백틱(``)으로 감싸줘야 한다. 한 줄 주석은 문장 앞에 --를 붙여서 사용하고 여러 줄 주석은 /* */로 감싸준다. SQL의 종류 데이터 정의어 (DDL; Data Definition Language) 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어 CREA..

CodeStates_BE_44/TIL

[네트워크] HTTP

Rest API 웹 애플리케이션에서는 HTTP 메서드를 이용해 서버와 통신합니다. HTTP 메서드를 사용해 요청과 응답을 할 때 제대로 보내고 받을 수 있는 일종의 규약이 존재하는데 이것을 REST API라고 합니다. 좋은 REST API를 디자인하는 방법 아래는 리차드슨의 REST 성숙도 모델을 구조화한 것입니다. 총 4단계(0단계~3단계)로 나누어지는데 실제로는 2단계가지만 적용해도 좋은 API 디자인이라고 볼 수 있고, 이런 경우 HTTP API라고 부릅니다. 0단계 - HTTP 사용 단순히 HTTP 프로토콜을 사용하는 것입니다. 물론 이 경우, 해당 API를 REST API라고 할 수는 없으며 좋은 REST API를 작성하기 위한 기본 단계입니다. 1단계 - 개별 리소스와의 통신 준수 앞서 RES..

CS/Data Structure

재귀

재귀란? 예를 들자면 n! = 1 X 2 X 3 X … X (n-1) X n 이고, 여기서 맨 끝의 n을 제외하면 (n-1)!이 된다. 즉 n! = n X (n-1)!이다. 이처럼 어떤 문제나 함수 등이 자신과 성격이 똑같지만 크기가 더 작은 문제를 하나 이상 포함하고 있을 때 재귀적 구조를 갖고 있다고 말한다. 재귀 구조의 예 수열 초항이 1이고 공차가 3인 등차수열 public class Main { public static void main(String[] args){ int n = 5; System.out.println(seq(n)); } static int seq(int n) { if(n == 1) { return 1; } else { return seq(n-1) + 3; } } } 재귀 알고리..

Problem Solving/Study

[Java] 프로그래머스. Study 2주차

1. 같은 숫자는 싫어 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 ..

Reading/자바의 정석

Chapter 8. 예외처리

1. 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 이를 발생 시점에 따라 ‘컴파일 에러’와 ‘런타임 에러’로 나눌 수 있다. 컴파일 에러: 컴파일 시 발생하는 에러 런타임 에러: 실행 시 발생하는 에러 여기에 추가로 컴파일도 잘 되고 실행도 잘 되지만 의도한 것과 다르게 동작하는 것을 논리적 에러라고 한다. 런타임 에러를 방지하기 위해서는 프로그램의 실행 도중 발생할 수 있는 모든 경우의 수를 고려하여 이에 대한 대비를 하는 것이 필요하다. 자바에서는 실행 시(runtime) 발생할 수 있는 프로그램 오류를 ‘에러(error)’와 예외(exception)’ 두 가지로 구분하였다...

CodeStates_BE_44/TIL

[네트워크] 웹 애플리케이션 작동 원리

1. 웹애플리케이션에 대한 이해 특정 기기에 설치해서 사용하는 애플리케이션을 네이티브 애플리케이션(Native-application)이라고 한다. 네이티브 애플리케이션은 Apple iOS, Android OS, Windows와 같은 특정 실행 환경에 종속된다. 웹 브라우저를 통해 접근이 가능한 애플리케이션을 웹애플리케이션이라고 한다. 2. 네트워크를 만드는 기술 2-1. TCP/IP 기본 LAN과 WAN 우리의 컴퓨터는 인터넷 제공업체에서 제공한 인터넷 라우터를 통해 연결되어 있다. 유선이 되었든 무선이든 라우터에 연결이 되어있지 않다면 인터넷을 사용할 수 없다. 이러한 좁은 범위에서 연결된 네트워크를 LAN(Local Area Network)이라고 부른다. 그리고 수많은 LAN들이 모여 세계의 네트워크..

Reading/스프링 입문을 위한 자바 객체지향의 원리와 이해

4. 자바가 확장한 객체 지향

이번 장에서는 자바가 객체 지향을 확장하기 위해 사용하는 키워드와 개념을 살펴보자. abstract 키워드 - 추상 메서드와 추상 클래스 추상 메서드(Abstract Method)를 간단하게 설명하면 선언부는 있는데 구현부가 없는 메서드를 의미한다. 추상 메서드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스(Abstract Class)로 선언해야 한다. 물론 추상 메서드 없이도 추상 클래스를 선언할 수는 있다. 그럼 추상 메서드는 어떤 것이고, 왜 필요할까? public class 동물 { void 울어보세요() { System.out.println("나는 동물! 어떻게 울어야 하나요?"); } } public class 쥐 extends 동물 { void 울어보세요() { System.out.pri..

Reading/스프링 입문을 위한 자바 객체지향의 원리와 이해

3. 자바와 객체 지향

객체 지향은 인간 지향이다 프로그래밍 언어의 발전사를 보면 개발자를 더욱 편하고 이롭게 하기 위한 과정임을 알 수 있다. 그러나 절차적/구조적 프로그래밍까지의 과정은 인간이 기계를 이해하려는 노력에서 크게 벗어나지 못했다. 특히 포인터의 개념은 기계 수준으로 눈높이를 낮추지 않으면 이해하기 매우 힘든 부분이다. 그런데 “왜 우리가 기계 종속적인 개발을 해야 하는가?”라고 하는 의문이 생겼고 “우리가 눈으로 보고, 느끼고, 생활하는 현실 세계처럼 프로그래밍할 수는 없을까?”라는 고민 속에서 객체 지향의 개념이 탄생했다. 객체 지향이 현실 세계를 반영한다는 말은 이미 오래 전에 객체 지향 언어의 틀을 만든 누군가가 한 말이다. 그 증거가 바로 ‘객체’이다. 눈으로 보여지는 것, 손으로 만져지는 것, 머릿속으..

Reading/스프링 입문을 위한 자바 객체지향의 원리와 이해

2. 자바와 절차적/구조적 프로그래밍

자바 프로그램의 개발과 구동 자바의 가상 세계는 현실 세계를 그대로 모방하고 있다. 현실 세계에서 소프트웨어, 즉 프로그램은 개발자가 개발 도구를 이용해 개발하고 운영체제를 통해 하드웨어 상에서 구동된다. 자바 개발 도구인 JDK를 이용해 개발된 프로그램은 JRE에 의해 가상의 컴퓨터인 JVM 상에서 구동된다. JDK: Java Development Kit / 자바 개발 도구 JRE: Java Runtime Environment / 자바 실행 환경 JVM: Java Virtual Machine / 자바 가상 기계 위 그림에서 보면 JDK는 자바 소스 컴파일러인 javac.exe를 포함하고 JRE는 자바 프로그램 실행기인 java.exe를 포함하고 있다. 자바가 이런 구조를 택한 이유는 한 개의 소스 파일..

조화이트
'분류 전체보기' 카테고리의 글 목록 (3 Page)