우아한 테크코스
-
[Java] StackTrace 읽기우아한 테크코스/테크코스 2020. 3. 5. 13:05
Stack Trace란? 응용 프로그램(Application)이 시작된 시점부터 프로그램 내에서 현재 실행 위치까지의 메서드 호출 목록 예외가 발생했을 때까지 프로그램의 위치와 진행정도를 나타내기 위해 예외가 발생하면 JVM에 의해 자동으로 생성 가장 최근의 메서드 호출이 목록에 맨 위에 있음 printStackTrace 예외의 메서드를 호출하여 StackTrace를 표준 오류로 인쇄할 수 있음 public class Throwable implements Serializable { // 전략 ... public void printStackTrace() { printStackTrace(System.err); } // 후략 ... } StackTrace는 java.lang.StackTraceElement 클..
-
[Mac] 단축키 기호 및 모음우아한 테크코스/테크코스 2020. 3. 5. 01:38
기호 및 조합키 ⌘ command(또는 cmd) ⇧ shift ⌥ option(또는 alt) ⌃ control(또는 ctrl) ⇪ caps lock fn 일반적인 단축키 ⌘ + X : 오려두기 ⌘ + C : 복사하기 / Finder 파일에도 적용 ⌘ + V : 붙여넣기 / Finder 파일에도 적용 ⌘ + Z : 실행 취소 ⇧ + ⌘ + Z : 실행 취소를 취소 ⌘ + A : 전체 선택 ⌘ + F : 찾기 또는 찾기 윈도우 열기 ⌘ + G : 다음 항목 찾기 / 이전에 찾은 항목이 다음으로 나타나는 위치 ⇧ + ⌘ + G : 다시 찾기 / 이전에 찾은 항목 위치 ⌘ + H : 전면 앱의 윈도우를 가림 ⌥ + ⌘ + H : 전면 앱을 제외한 모든 앱의 윈도우를 가림 ⌘ + M : 전면 윈도우 최소화하여 D..
-
[Java] Stream map vs Stream foreach vs Collection foreach우아한 테크코스/테크코스 2020. 3. 5. 00:07
For Loop문 수동 로또를 만드는 메서드를 아래와 같이 작성을 했었는데, foreach나 map을 적용해봐도 좋을 것 같다고하여 적용 해보면서 간단하게 정리. 나름 직관적인 코드라고 생각했지만, 아래 방법들이 더 직관적으로 들어온다. private static List createManualLottos(List manualLotto, LottoCount count) { List lottos = new ArrayList(); int lottoCount = manualLotto.size(); for (int index = 0; index < lottoCount; index++) { lottos.add(LottoFactory.createManual(manualLotto.get(index))); } retu..
-
[Vim] Game - pacvim vs VIM Adventures우아한 테크코스/테크코스 2020. 3. 2. 16:45
pacvim https://github.com/jmoon018/PacVim CLI 무료 게임! 이 게임은 팩맨같은 게임이다 :) 해보고 재밌으면 VIM Adventures도 결제할까 고민중.. MAC OS나, LINUX, 또는 DOCKER를 이용해서 설치 가능 mac에서 설치하기 1. Command + Space를 이용해 terminal.app을 연다. (아이텀즈도 상관없음..) 2. 아래의 명령들을 실행(맥 비밀번호 입력 필요) $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" /dev/null $ brew install pacvim 3. 아래의 명령어로 실행 #..
-
[독서] 코딩을 지탱하는 기술우아한 테크코스/테크코스 2020. 2. 24. 17:00
코딩을 지탱하는 기술 특정 언어에 국한된 지식이 아닌, 보다 보편적인 지식을 습득할 수 있도록 함 이를 위해 '비교를 통한 배움'과 '역사를 통한 배움'이라는 두 방법을 사용함 비교를 통한 배움 특정 언어로 프로그래밍을 배우는 것이 아닌, 다수의 언어를 비교하면서 학습하는 것 무엇이 언어에 따라 다르고 무엇이 공통적인지 배울 수 있음 역사를 통한 배움 언어가 어떻게 바뀌었고 바뀌기 전에는 어떤 의문점이 존재했는지 학습 언어가 가지고 있는 다양한 기능이 '왜' 탄생했는지 배울 수 있음 프로그래밍 언어가 생긴 이유 사람을 편하게 하기 위하여 생김 어떤 부분에서 편한지는(목적) 언어에 따라 다름 문법 언어 설계자가 정한 규칙 FORTH과 LISP FORTH - 가장 간단한 컴퓨터 언어; 괄호도 우선순위라는 규..
-
[독서] 클린 코더우아한 테크코스/테크코스 2020. 2. 24. 10:35
자신의 시간 주 40시간을 일을 한다면, 그 외 추가로 20시간을 자신을 위해 사용해야 함 프로 소프트웨어 개발자라면 알아야하는 최소한의 기능 목록 디자인 패턴 24가지 GOF 패턴을 설명할 수 있고, POSA 패턴을 실무에 적용할 수준으로 알아야 함 설계 원칙 SOLID 객체지향 원칙을 알아야 하고 컴포넌트 개념을 충분히 이해해야 함 방법론 XP, 스크럼, 린, 칸반(KANBAN), 폭포수, 구조적 분석, 구조적 설계 개념을 충분히 이해해야 함 원칙 테스트 주도 개발(TDD), 객체지향 설계, 구조적 프로그래밍, 지속적 통합, 페어 프로그래밍을 실천해야 함 도구 UML, 데이터 흐름도(DFD), 구조 차트(Structure Chart), 페트리 넷(Petri Net), 상태 전이 다이어그램과 테이블(S..
-
[Java] O/R 매핑 프레임워크로 데이터 액세스 레이어 구현우아한 테크코스/테크코스 2020. 2. 23. 17:03
O/R 매핑 프레임워크 O/R 매퍼라고 부르기도 함 종류는 여러가지가 있는데, 대표적인 예로는 마이바티스(MyBatis)가 있음 필요성 데이터 액세스 레이어를 DAO로 분리하면 DB 연결과 관련된 처리를 분리해 전체 코드의 가독성이 좋아짐 하지만, 분리한 것이므로 번거로운 DB 연결 처리가 간단해지는 것은 아님 위의 문제를 해결하고자 시도된 방법 중 하나가 O/R 매핑 프로그램 O/R 매핑 O/R : 객체/관계(Object/Relation) O/R 매핑 : 프로그레밍 언어의 객체와 관계형 DB를 대응 관계형 DB(RDB) : 여러 개의 테이블과 그 관계를 이용해 정보를 관리하는 DB 임피던스 불일치 : 관계형 데이터베이스상의 표현과 객체지향 언어의 객체를 통한 표현의 차이 > RDB : (예) 고객 / ..
-
[Java] JDBC / 데이터 액세스 레이어 / DAO우아한 테크코스/테크코스 2020. 2. 23. 16:17
용어 JDBC : Java DataBase Connectivity; 약칭이 아닌 정식 명칭 API : Application Programming Interface : 운영체제나 프로그래밍 언어가 준비한 라이브러리를 애플리케이션에서 이용하기 위한 입구가 되는 것, Java의 경우 표준으로 준비된 각종 클래스가 API JDBC 자바에서는 DB에 접속하기 위한 API로 JDBC가 준비되어 있음 레이어를 나누지 않았을 때의 순서 1. 데이터 소스 획득 웹 애플리케이션에서는 일반적으로 DB와의 연결을 애플리케이션 서버가 관리 > 웹 애플리케이션이 어떻게 DB에 연결하는지 일일히 신경쓰지 않아도 됨 웹 애플리케이션이 DB에 접근하려면 먼저 JNDI(Java Namming and Directory Interface)..