우아한 테크코스
-
[아키텍처 패턴] 레이어 패턴(Layer Pattern)우아한 테크코스/테크코스 2020. 2. 21. 16:29
아키텍처 패턴 자주 사용되는 아키텍처에 이름을 붙여 놓은 것 레이어 패턴 사용처 웹 애플리케이션처럼 다양한 기술을 조합해 만드는 복잡한 시스템에서는 MVC 모델과 함께 레이어(Layer)라고 하는 아키텍처 패턴을 이용함 나중에 읽어볼 것, 패턴 지향 소프트웨어 아키텍처 : 패턴 시스템 1권 의미 레이어(Layer) = 계층 레이어 패턴 : 시스템을 계층화하고 하위 레이어가 제공하는 기능을 상위 레이어가 이용함으로써 각 레이어의 구조를 단순화한다는 발상 핵심 : 각 레이어는 해당 레이어가 의존하는 직접적인 하위 레이어만 알면 됨 구조 레이어 1 (상위 레이어) V 레이어 2 V 레이어 3 V V 레이어 n (하위 레이어) 레이어 2는 하위 레이어인 레이어 3에 의존 레이어 2의 경우 의식하는 것은 레이어2..
-
[아키텍처] 프레임워크란?우아한 테크코스/테크코스 2020. 2. 20. 13:49
프레임워크(framework) 쉬운 설명 재사용할 수 있는 부분을 늘려 애플리케이션 개발을 용이하게 하는 토대로 만들어진 것 애플리케이션의 기반이 되는 것으로, 프레임워크를 토대로 필요한 부분을 만들어나가면 원하는 애플리케이션을 단기간에 개발할 수 있음 아키텍처와의 관계 공통적인 아키텍처 부분을 반(半:절반정도) 완성품 소프트웨어로 구현해 차이가 있는 부분만 만들면 되게 한 것 아키텍처를 구현하는 부분을 공통화한 부분 장점 프레임워크를 사용하고 다른 부분은 따로 개발할 수 있게 하면 효율적으로 애플리케이션을 개발할 수 있음 모든 것을 처음부터 개발하지 않아도 되기 때문에 품질도 높아짐 프레임워크 도입의 장점 설계 / 개발 공수의 절감 프레임워크 이용시 가장 큰 장점으로는 우수한 설계를 재사용할 수 있다는..
-
[아키텍처 패턴] MVC 모델2우아한 테크코스/테크코스 2020. 2. 20. 09:52
MVC 모델2 애플리케이션을 모델(Model), 뷰(View), 컨트롤러(Controller)라는 세 가지 역할을 나눔 IPO에 견주어보면 입력 - 컨트롤러 / 처리 - 모델 / 출력 - 뷰에 해당하지만, 컨트롤러에 전체의 흐름을 제어하는 역할이 부여되었다는 점이 다름 MVC 모델을 기반으로 삼으면 로직과 디자인의 분리를 구현할 수 있음. 로직은 모델, 디자인은 뷰가, 컨트롤러는 접착제 역할 IPO : 입력(Input), 처리(Process), 출력(Output)이라는 컴퓨터 처리의 기본적인 흐름 구성요소 모델(Model) 애플리케이션의 처리 부분과 그와 관련된 정보의 보존을 담당 화면에 대한 입출력같은 부분에는 일절 관여하지 않음 뷰(View) 모델의 결과를 화면에 표시하는 역할을 담당 처리 결과는 모..
-
[Java] String 연결우아한 테크코스/테크코스 2020. 2. 19. 21:07
일반 간단한 String 연결 (JDK 1.8 ~ ) 문자열.concat(연결할문자열); 연결할 문자열 길이가 0이 아니라면, 내부적으로 새 문자 배열 버퍼를 만들고 해당 문자 배열을 기반으로 새 문자열 반환 소수(대략 3개 이하)의 문자열을 연결할 경우 +보다 더 유리한 것으로 추정 public String concat(String str) { int otherLen = str.length(); if (otherLen == 0) { return this; } char buf[] = new char[count + otherLen]; getChars(0, count, buf, 0); str.getChars(0, otherLen, buf, count); return new String(0, count + o..
-
[Java] For문(For Loop / Enhanced For Loop / For Each)우아한 테크코스/테크코스 2020. 2. 19. 20:34
기존의 For문 for(변수 선언 및 초기화; 조건문; 변수증감연산) for(int i = 0; i < 5; i++) { // ... } 향상된 For문(Enhanced For Loop / Foreach Loop) for(대입받을 변수 선언; 순회하며 대입할 대상) - 순회하며 대입할 대상을 Iterator의 hasNext()를 이용하여 순회 - Iterartor를 구현하면 사용 가능 List strings = new ArrayList(); // ... for(String string : strings) { // ... } 유의할 점 Iterator를 구현한 객체만 가능함 // Java 파일 void listForEach() { List strings = Arrays.asList("d,dd,ddd".sp..
-
자바 빈(Java Bean)이란?우아한 테크코스/테크코스 2020. 2. 18. 23:16
형식 - 인수가 없는 생성자가 있어야 함 - 직렬화가 가능해야 함 - getter 및 setter 메서드라는 특정 값을 가져오고 설정하는 메서드가 있어야 함 사용하는 이유 - 재사용 가능한 소프트웨어 컴포넌트 - 많은 objects들을 하나로 묶어, 많은 곳에서 해당 객체에 접근할 수 있도록 캡슐화함 - 유지하기도 쉬움 항목(속성;property) JavaBean의 멤버변수를 속성(property)이라 부름 / private JavaBean 속성은 개체의 사용자가 액세스할 수 있는 명명된 기능. 기능은 정의한 클래스를 포함하는 모든 Java 데이터 유형일 수 있음. JavaBean 속성은 읽기, 쓰기, 읽기 전용 또는 쓰기 전용일 수 있음. JavaBean 기능은 JavaBean의 구현 클래스의 두 가지..
-
d2 coding 글꼴 적용(맥 / 인텔리제이)우아한 테크코스/테크코스 2020. 2. 18. 16:53
D2 Coding 글꼴 다운로드 : https://github.com/naver/d2codingfont Mac에 추가하기 Finder > 서체 관리자 > 추가 > 다운로드한 글자 디렉터리 중 "D2CodingAll" 내의 항목을 선택 또는 D2CodingAll에서 ttc 파일을 실행 단) 사용자 글꼴이 아닌 기본 글꼴에 추가해야 인텔리제이에서 사용할 수 있음 Finder에 적용하기 /* 참고 - 글꼴은 서체 관리자에 있는 이름으로, 단 띄어쓰기는 제외한다 */ // D2Coding 글꼴 적용 defaults write com.apple.finder NSSystemFont -string D2Coding;killall Finder // 맥 기본 폰트로 롤백 defaults delete com.apple.fi..
-
[Java] UnsupportedOperationException - 배열 asList 관련 에러우아한 테크코스/테크코스 2020. 2. 17. 21:22
asList한 Arrays에 add를 하면 해당 에러 발생 UnsupportedOperationException, add를 하고 싶다면 addAll() 또는 생성자를 통해 하도록(아래 코드 참고) 깊은 복사와 얕은 복사깊은 복사 : deep copy : call by value 복사한 원본 또는 복사본 모두 수정이 서로에게 영향을 미치지 않음 - 값을 복사하기 때문 Cloneable을 상속받은 객체를 clone() 메서드로 복사함 얕은 복사 : shallow copy : call by reference 복사한 원본 또는 복사본 모두 수정이 서로에게 영향을 미침 - 주소를 복사하여 서로 참조하기 때문 = 기호로 복사함 List의 덜 깊은 복사?(공식 용어 아님) List를 대체할 때는 (set API이용)..