목록Java (6)
독도갈매기의 개발 블로그
정적 타입 언어로서의 장점 Spring Framework 외에도 node.js의 Express, Python의 Django, Flask가 있는데 왜 굳이 복잡하게 느껴지는 Spring을 사용해야 할까요? 그리고 왜 Java는 복잡하다고 느껴질까요? 대표적인 이유를 뽑자면 JS는 동적 타입 언어이기 때문입니다. const arr1 = [1, 2, 3]; const arr2 = ['1', '2', '3', '4']; const reduceArr = arr => arr.reduce((l, r) => l + r); reduceArr(arr1); // 6 reduceArr(arr2); // '123' 우리는 숫자를 모두 더 한 값을 retur..
Spring? 간단히 설명했을 때 Spring은 Java 오픈소스 애플리케이션 프레임워크입니다. 엔터프라이즈( Enterprise : 대규모 사업, 기업 )급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션입니다. 즉, 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경을 개발할 수 있도록 형성된 프레임 워크입니다. 그리고 가장 큰 특징 중 하나인 경량 컨테이너로 자바 객체를 담고 직접 관리하고, 객체의 생성 및 소멸 그리고 라이프 사이클을 관리하는 등의 기능으로 IoC 기반의 프레임워크임을 알 수 있습니다. Spring이 흥하게 된 계기 이전에 Java EE라는 서버 개발 플랫폼을 알아야 합니다. → 플랫폼 : 일반적으로 플랫폼은 컴퓨터의..
Interceptor 인터셉터( Interceptor )란? 컨트롤러( Controller )의 핸들러( Handler )를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 일종의 필터 // Node.js app.get('/', (req, res) => { res.send('Hello World!'); // Controller Handler console.log('me too!'); // Controller Hanlder }); 핸들러( Handler )란? 사용자가 요청한 url에 따라 실행되어야 할 메서드( Method ), 함수( Function ) Ex) res.send(), console.log(), etc... 왜 사용 해야 하는가? 특정..
IoC ( Inversion of Control : 제어권 역전 ) 일반적인 의존성에 대한 제어권 : 개발자가 직접 의존성을 만든다. 의존성 ( 코드 적인 의미 ) 어떤 객체가 사용해야 할 객체라고 할 수 있고, 더 쉽게 말하자면 직접 new 등을 써서 만들어 쓰면 의존성을 자기가 직접 만들어 쓴다고 할 수 있습니다. 제어권 역전이 일어나지 않는 코드 public class TestRepository {...} public class TestController { // 직접 TestRepository를 생성하여 사용. private TestRepository testController = new TestRepository(); } 제어권 역전 IoC는 전통적인 방식에 반대되는 흐름으로 코드가 진행되는 것..
DI DI ( 의존성 주입 ) 이란? 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴( IoC 구현 기법 )으로, 인터페이스를 사이에 둬서 클래스 레벨에는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 다이나믹하게 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해준다. 의존성이란? 한 객체가 다른 객체를 사용할 때 의존성이 있다고 함. DI를 쓰는 이유 - 장점 재사용성을 높여줌. 테스트 용이. 코드 단순화. 종속적 코드 수 감소. 종속성 감소. 코드 가독성 향상. 결합도 감소, 유연성과 확장성 향상 객체간 의존관계 설정 객체간 의존관계를 없애거나 줄일 수 있음. DI를 사용하지 않는다면 // 커피 클래스 class Coffee { public void drink() { 커피를 마신다 ....
문자열 비교 '='이면 되는거 아닌가요? 네 맞습니다. 저희는 아래 코드처럼 비교를 한다면 원하는 결과를 얻을 수 있습니다. public class Blog { public static void main(String[] args) { String a = "맞습니다."; String b = new String("맞습니다."); System.out.println(a == b); // false } } 위처럼 되는 이유는 자바에 있는 메모리 Heap영역이 존재하고 String이 객체이기 때문입니다. 위 코드에서 일어나는 일을 보면 a에 '맞습니다'를 할당할 때 먼저 Heap영역에 같은 값을 가진 주소값을 탐색합니다. 같은 값을 가진 주소값이 있다면 그 주소값을 할당하는 것이죠 (주..