본문 바로가기

공부106

[HTTP] GET vs POST GETvsPOST GET vs POSTHTTP 프로토콜(the HyperText Transfer Protocol)을 이용해서 클라이언트와 서버가 데이터를 주고 받을 때 요청 메소드를 지정해주는데, 다들 이 전송방식들 간에 무슨 다른 점이 있는걸까? 하고 생각해본 적 있을 것이다. 뭔가 데이터를 주고받는 방식이나 지정해주는게 다른 것 같기도 한데.. 똑같은 것 같기도 하고.. 뭐가 다른걸까?HTTP Request Method 중에는 GET, POST, DELETE, PUT 등의 여러 방법이 있는데, 우리가 주로 사용하는 GET 방식과 POST방식에 대해 설명하겠다. GET방식과 POST방식의 차이라. 간단하게 생각해보면 이름에서부터 다른 점을 알아낼 수 있다. GET = 가져오는 것. POST = 보내는 .. 2018. 7. 14.
[codility] Triangle Triangle Triangle Determine whether a triangle can be built from a given set of edges.Task Score93%Correctness90%Performance100% 주어진 배열 A에서 A[P] + A[Q] > A[R],A[Q] + A[R] > A[P],A[R] + A[P] > A[Q].를 만족하는 세 숫자가 존재하면 1을 반환하고, 아니면 0을 반환하는 문제이다.일단 시간복잡도가 O(NlogN)이기 때문에 for문 3개를 돌리는 것은 안될 말이고.. 그렇다고 for문을 3개로 나눠서 뭐 어떻게 저떻게 하자니 그건 또 아닌 것 같고..그래서 sort로 A를 정렬해주고 연속된 세 숫자를 비교해주는 방식을 사용했다. 크기 순서대로 정렬해서 처음.. 2018. 7. 14.
[Thread] 동기화와 교착상태 Thread Synchronization동기화(synchronization)스레드는 자원을 공유하기 때문에 동시에 여러 스레드가 실행되면 공유 자원에 대해 동기화가 발생할 수 있다.실행 흐름은 순차적으로 진행되지만, 자원은 한정적인데 여러 스레드가 동시 접근해서 사용하려고 하면 문제가 생기게 된다.공유 메모리에 대해서 한 번에 한 스레드만 공유자원에 접근할 수 있도록 만들어 동기화 문제를 해결할 수 있다. 임계영역(critical section)멀티스레드 프로그램에서 공유 자원이 참조 가능한 코드 영역을 말한다. 한 스레드가 사용 중인 자원은 작업이 끝날 때까지 lock을 걸어서 다른 스레드가 사용할 수 없도록 한다.자바에서는 임계영역을 지정하기 위해 동기화 메소드와 동기화 블록을 제공한다. 스레드가 동.. 2018. 6. 11.
[Thread] Thread Thread Process와 Thread 프로세스는 운영체제에서 실행되고 있는 하나의 프로그램을 말한다. 이 프로세스는 반드시 하나 이상의 스레드를 포함하게 되는데, 이 스레드는 프로세스 내에서 실행되는 독립적인 실행 흐름의 단위라고 할 수 있다. 즉, 경량화 된 프로세스라고 보면 된다. 프로세스에서 실질적인 일 처리는 이 스레드가 담당하게 된다. 프로세스는 완전히 독립적인 단위이므로 메모리 영역을 다른 프로세스와 공유하지 않는다. 하지만 스레드는 해당 스레드를 위한 스택메모리를 생성할 뿐 그 외 메모리 영역은 공유한다. 이 때문에 멀티 프로세싱 하던 일을 스레드로 구현하면 메모리 공간과 자원을 절약할 수 있다. 스레드를 활용해서 프로세스를 수행했을 때, 시스템 단위시간 당 데이터 처리량이 향상된다. 따.. 2018. 6. 11.
[자료구조] 비선형구조 자료구조(2) 자료구조(2) - 비선형구조자료구조에는 선형구조와 비선형구조가 있다. 자료구조(1)에서 선형구조에 대해 설명했었는데, 데이터를 순차적으로 나열하는 선형구조와 달리 비선형구조는 비선형적인 계층 구조를 나타낸다. 트리Tree그래프의 일종으로, 하나 이상의 노드(node)를 가진다. 각 노드는 엣지(edge, branch)로 연결된다.degree(차수) : 부속 트리의 개수 level(레벨, 깊이) : 루트노드로부터의 깊이 (루트노드의 level = 1)Parent node(부모 노드) : 노드 A가 B를 가리킬 때 A를 B의 부모 노드라고 한다. Child node(자식 노드) : 노드 A가 B를 가리킬 때 B를 A의 자식 노드라고 한다. Sibling node(형제 노드) : 부모가 같은 노.. 2018. 6. 8.
[programmers] 올바른 괄호 올바른 괄호 올바른 괄호 올바른 괄호란 두 개의 괄호 '(' 와 ')' 만으로 구성되어 있고, 괄호가 올바르게 짝지어진 문자열입니다. 괄호가 올바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 합니다.예를들어​()() 또는 (())() 는 올바른 괄호입니다.)()( 또는 (()( 는 올바르지 않은 괄호입니다.'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return하는 solution 함수를 완성해 주세요.​제한사항문자열 s의 길이 : 100,000 이하의 자연수문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 올바른 괄호가 되려면 '('와 ')'의 수가.. 2018. 6. 5.
[programmers] 같은 숫자는 싫어요 같은 숫자는 싫어요 같은 숫자는 싫어요 x배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 배열 arr에서 제거 되고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 단, 제거된 후 남은 수들을 반환할 때는 배열 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 함수를 완성해 .. 2018. 6. 5.
[자료구조] 선형구조 자료구조(1) 자료구조(1) - 선형구조효율적인 작업처리를 위해서 상황에 따라 적절한 자료구조를 취사선택해서 사용해야한다. 배열Array대부분의 프로그래밍 언어에서 사용 가능한 가장 기본적인 자료구조로, 번호(index)와 번호에 대응하는 서로 연관된 데이터로 이루어진다.데이터의 순서가 있으며 중복을 허용한다.index는 int 혹은 long형이다.배열은 선언과 동시에 길이를 지정한다. 그리고 그 길이는 변경 불가능하다. type[] arr = new type[n]; type[] arr = {value1, value2, ...}; type[][] arr = new type[n][m]; type[][] arr = {{value1-1, value1-2, ...}, {value2-1, value2-2, ..... 2018. 6. 5.
정규표현식(정규식, 표현식) Java 정규표현식 Java 정규표현식 자바에서는 정규식(정규표현식)을 이용해서 쉽게 특정한 패턴을 가지는 문자열을 검색하거나 패턴을 체크 할 수 있다.표현식뜻.하나의 임의의 문자 (백슬래시(\) 제외)?문자가 없거나 하나가 있음*문자가 없거나 하나 이상+하나 이상의 문자^문자열의 시작$문자열의 끝|or연산[]문자의 집합 또는 범위{}문자 및 문자열 반복 횟수 또는 범위()괄호 내 문자들을 하나의 묶음으로 인식해서 사용[0-9]숫자[a-z]알파벳 소문자[a-zA-Z]알파벳 대·소문자\d[0-9]\D숫자를 제외한 문자\s공백\S공백을 제외한 문자\w알파벳 또는 숫자\W알파벳과 숫자를 제외한 문자\특수문자를 패턴에 유효하게 사용하고싶을 때 특수문자 앞에 백슬래시를 넣어준다.(?i)대소문자 구분 없음 자주 쓰.. 2018. 6. 5.
Interface, Abstract Interface, Abstract Interface일종의 추상 클래스오직 추상메서드와 상수만을 멤버로 갖는다.Implements 키워드를 사용해서 class에서 상속받아 사용한다.상속의 관계가 없는 클래스간 서로 공통되는 로직을 구현하여 쓸 수 있도록한다.Extends는 하나의 클래스만 상속 가능하나 Interface는 다중 상속이 가능하다.스프링에서 객체와 객체의 관계를 약화시키기 위해 사용한다. - DI(Dependency Injection)객체와 객체를 직접 연결시키는 것 보다는 인터페이스를 이용해 간접 연결 시키는 것이 나중에 객체를 수정하기에 편리하다. Abstract추상메서드를 하나 이상 가진 클래스자신의 생성자로 객체 생성 불가능하위 클래스를 참조하여 상위 클래스의 객체를 생성한다.하위 클.. 2018. 5. 31.