[코드잇][위클리페이퍼][4주차] 프레임워크와 라이브러리의 차이점
·
IT/코드잇
아래는 4주차 위클리페이퍼 주제이다.Spring Framework가 탄생하게 된 배경과 이를 통해 해결하고자 했던 문제점에 대해 설명하세요.프레임워크와 라이브러리의 차이점을 제어 흐름의 주체와 사용 방식을 중심으로 설명하고, Spring Framework와 일반 Java 라이브러리를 예시로 들어 설명하세요.이번 포스팅에서는 두 번째 주제에 대해서 다룬다. 우리가 코드를 작성할 때 이미 작성된 코드를 다른 곳에서 재사용하려면 복사 붙여넣기를 통해 사용할 수 있다. 그러나 개발자라면 복사 붙여넣기가 아닌 함수를 통해 반복되는 작업을 줄일 것이다. 더 나아가, 내가 만든 함수뿐만이 아니라 남이 만들어 놓은 코드를 사용할 수도 있다. 이러한 것을 보고 '라이브러리' 또는 '프레임워크'를 사용한다고 한다. 둘다 ..
[코드잇][위클리페이퍼][4주차] Spring Framework의 탄생 배경
·
IT/코드잇
아래는 4주차 위클리페이퍼 주제이다.Spring Framework가 탄생하게 된 배경과 이를 통해 해결하고자 했던 문제점에 대해 설명하세요.프레임워크와 라이브러리의 차이점을 제어 흐름의 주체와 사용 방식을 중심으로 설명하고, Spring Framework와 일반 Java 라이브러리를 예시로 들어 설명하세요.이번 포스팅에서는 첫 번째 주제에 대해서 다룬다.이번 주제는 스토리텔링 방식으로 서사를 나열하려고 한다. 혹독한 겨울을 지나, 봄(Spring)이 오다 스프링 프레임워크라는 이름에는 단순히 '봄'이라는 계절 이상의 의미가 담겨있다.바로 EJB(Enterprise JavaBean)이라는 혹독한 겨울에서의 해방이라는 의미를 가지고 있다.도대체 EJB가 무엇이고 어떤 문제점이 있길래 혹독한 겨울이라고 불렸..
[코드잇][위클리페이퍼][3주차] 알고리즘과 자료구조
·
IT/코드잇
아래는 3주차 위클리페이퍼 주제이다.HashSet의 내부 동작 방식과 중복 제거 메커니즘을 설명하고, HashSet이 효율적인 중복 체크를 할 수 있는 이유를 설명해주세요.O(n)과 O(log n)의 성능 차이를 실생활 예시를 들어 설명하고, 데이터의 크기가 1백만 개일 때 각각 대략 몇 번의 연산이 필요한지 비교해주세요. 먼저 HashSet 자료형을 설명하기에 앞서 Set의 특징에 대해서 설명한다.Set은 영어 그대로 집합을 말하며 집합의 수학적 특징을 그대로 가져간다. 그래서 순서가 없으며, 원소의 중복이 허용되지 않는다.그렇다면 자바는 내부적으로 어떻게 Set을 구현할까? 자바에는 HashSet과 TreeSet이라는 두 Set가 있다.이 두 자료구조의 차이점은 HashSet은 내부적으로 해쉬 테이블..
[코드잇][위클리페이퍼][2주차] JAVA의 Stream과 매핑 연산
·
IT/코드잇
아래는 2주차 위클리페이퍼 주제이다.객체지향 프로그래밍에서 '단일 책임 원칙(SRP)'과 '개방-폐쇄 원칙(OCP)'에 대해 설명하고, 각각의 원칙을 적용한 코드 예시를 들어주세요.Stream API의 map과 flatMap의 차이점을 설명하고, 각각의 활용 사례를 예시 코드와 함께 설명해주세요.저번 포스팅에서 첫 번째 주제에 대해 이야기했고, 이번 포스팅은 두 번째 주제에 관해서 작성한다. 먼저 스트림이라는 것에 대해 알아야 매핑 연산의 차이를 비교할 수 있으므로 스트림에 대해서 먼저 설명하겠다.스트림은 자바8에서 등장한 기능으로 이전에 존재하던 For문, Iterator를 조금 더 쉽게 다루기 위해 등장한 기능이다.For문은 개발자가 직접 요소를 처리해야 하는 외부 반복이라면, Stream은 요소를 ..
[코드잇][위클리페이퍼][2주차] 객체지향 설계의 5가지 원칙
·
IT/코드잇
아래는 2주차 위클리페이퍼 주제이다.객체지향 프로그래밍에서 '단일 책임 원칙(SRP)'과 '개방-폐쇄 원칙(OCP)'에 대해 설명하고, 각각의 원칙을 적용한 코드 예시를 들어주세요.Stream API의 map과 flatMap의 차이점을 설명하고, 각각의 활용 사례를 예시 코드와 함께 설명해주세요.그 중 현 포스팅에는 첫번째 주제에 관해 설명을 하려고 한다.먼저 5가지 설계 원칙을 간단하게 요약해서 설명하자면SRP (Single Responsibility Principle) : 단일 책임의 원칙**”**하나의 클래스는 하나의 책임만 가져야 한다.”OCP (Open/Closed Principle) : 개방/폐쇄의 원칙”확장에는 열려있고, 수정에는 닫혀있어야 한다.”LSP (Liskov’s Substituti..
[코드잇][위클리페이퍼][1주차] Git 내용에 관한 정리
·
IT/코드잇
아래는 1주차 위클리페이퍼 주제이다.git rebase와 git merge의 차이점을 설명하고, 각각 어떤 상황에서 사용하는 것이 적절한지 설명해주세요.git fetch와 git pull의 차이점을 설명하고, 각각을 사용하는 것이 적절한 상황을 설명해주세요.먼저 첫번째 주제에 대한 설명이다.브랜치를 병합할 때, merge와 rebase 두 방식을 사용할 수 있다. merge는 어떤 브랜치에서 커밋이 되었는지, 브랜치의 분기와 병합이 언제인지 기록이 남는다. 반면 rebase는 이름 그대로 현재 브랜치의 시작점(base)을 목적지 브랜치의 최신 커밋 뒤로 재배치한다. merge와 달리 별도의 병합 커밋을 남기지 않기 때문에, 처음부터 목적지 브랜치에서 작업한 것처럼 보인다. 이 과정에서 커밋 해시가 새로 ..