1. 스프링의 핵심 개념 스프링 프레임워크(이하 줄여서 스프링)의 핵심 목표는 '자바 개발 간소화' 이다. 객체지향 프로그래밍을 공부한 사람들이라면 느슨한 결합이나 재사용에 대해 들어봤을 것이다. 스프링은 그런 객체지향 프로그래밍을 지원하기 위해 나온 프레임워크들 중 하나다. 앞서 말했듯이 자바 개발 간소화를 하기 위해 스프링의 전략은 다음과 같다.POJO를 이용한 가볍고 non-invasive 개발DI와 인터페이스 지향을 통한 느슨한 결합도AOP와 공통 규약을 통한 선언적 프로그래밍템플릿을 통한 상투적인 코드 축소1-1. POJO란 무엇인가? POJO(Plain Old Java Object)란 평범한 자바 객체이다. 마틴 파울러가 2000년 가을 컨퍼런스에서 처음 만들어낸 말이다. 마틴 파울러는 EJB..
※본 내용의 순서는 [Spring in Action]의 교재를 통해 진행됩니다.
Codility-Lesson02-1. OddOccurrencessInArray 문제N개의 정수로 구성된 배열 A가 있는데 이 배열은 홀수 개의 원소들을 가지고 있다. 그리고 딱 한 원소를 제외한, 나머지 원소들은 다른 원소와 같은 값을 가지고 짝을 이룬다. 여기서 짝을 이루지 않는 원소를 알아내라.{9,3,9,3,9,7,9} 에서는 7이 짝을 이루지 않는 원소이다.시간 복잡도 : o(n)풀이 방법 : XOR 비트 연산 12345678910111213141516171819package codility; public class OddOccurrencessInArray { public static void main(String[] args){ int arr[] = {9,3,9,3,9,7,9}; System.o..
Codility-Lesson01. BinaryGap 문제랜덤으로 발생하는 10진수 숫자 N 을 int Type으로 받는다2진법으로 N 을 변환한다2진법으로 표현된 N 에서 1과 1 사이에서 연속된 0의 최대 갯수를 리턴한다. 예컨대 2진법으로 변환한 결과가 ‘1010001’ 이라면 1과 1사이에 있는 0은 각각 1개, 3개 이다. 이중 최대값인 3을 리턴하면 된다. ‘100001001’ 의 경우에는 4 가 된다. 단 ‘10010000’ 인 경우 리턴 값은 2이다. 1과 1사이의 0 갯수만 해당되기 때문이다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344// you can also use imports, for..
vector::push_back 백터 끝에 원소를 추가한다.현재의 마지막 원소 뒤에 새로운 원소를 추가하며, 그 원소의 값은 x의 복사본으로 초기화 된다. 이 함수는 효과적으로 벡터의 크기를 1 늘리는데, 만일 capacity와 벡터 size가 같다면 내부적으로 재할당이 일어나게 된다. 이 때 이전에 사용되었던 반복자(iterator), 레퍼런스, 포인터들은 사용할 수 없게 된다. void push_back(const T& x); 인자 : x새로 추가 될 원소에 복사 될 원소T는 벡터에 저장되어있는 원소들의 타입이다. 리턴값 : 없음만일 재할당이 발생한다면 이는 Allocator::allocate() 를 이용해서 수행되는데, 예외를 던질(throw) 수 있다. (디폴트 할당자의 경우 만일 요청한 할당이 ..
JAVA 특징 1. 이식성이 높은 언어 - 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것 2. 객체 지향 언어 (OOP) => 자세히 알아보기3. 함수적 스타일 코딩 지원 - 대용량 데이터의 병렬 처리 그리고 이벤트 지향 프로그래밍에 적합 - JAVA 8 부터 람다식을 제공 => 컬렉션의 요소를 필터링, 매핑, 집계 처리하는데 쉬워짐, 코드가 간결해짐 4. 메모리를 자동으로 관리한다. - 객체 생성시 자동으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector) 실행 5. 다양한 애플리케이션 개발 가능 - 윈도우, 리눅스, 유닉스, 맥 등 다양한 OS에서 실행되는 프로그램을 개발 가능 6. 멀티 스레드를 쉽게 구현 가능 - 하나의 ..
. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include/*배열을 사용한 큐를 이용하여 BFS를 구현한다.문제 푸는 시에 문제점 1. 배열의 크기에 대한 간과점2. 큐의 크기 3. 코드 정확도*/#define size_x 1005#define size_y 1005 int map[size_x][size_y];int check[size_x][size_y];int q[1000050][2];int dx[4] = { -1, 1, 0, 0 };int dy[4] = { 0, 0, -1, 1 };int head = 0, ta..
ping(Packet INternet Groper) 명령어 네트워크 상태를 확인하려는 대상(target) 컴퓨터(또는 네트워크 기기)를 향해 일정 크기의 패킷(packet, 네트워크의 최소 전송단위)을 보낸 후(ICMP echo request), 대상 컴퓨터가 이에 대해 응답하는 메시지(ICMP echo reply)를 보내면 이를 수신, 분석하여 대상 컴퓨터가 작동하는지, 또는 대상 컴퓨터까지 도달하는 네트워크 상태가 어떠한지 파악할 수 있다.