우아한테크캠프
-
애노테이션우아한테크캠프 2018. 7. 15. 22:59
애노테이션 (주석, 메모 ...)프로그램 자체에 어떤 영향을 안 주면서도, 어떤 역할을 하는지 알려주는 역할 (미리 약속된 형식이 있음)ex) '@Test'라는 애노테이션을 메소드에 붙이게 되면, 메소드가 포함된 프로그램에는 아무런 영향을 안 주면서도, 테스트 프로그램에게 해당 메소드를 테스트해야 한다는 사실을 알리게 된다. 표준 애노테이션자바에서 기본적으로 제공하는 애노테이션ex) @Override, @Deprecated, @SuppressWarnings ... 메타 애노테이션애노테이션을 정의하는데 사용되는 애노테이션ex) @Target, @Retention, ... 마커 애노테이션(애노테이션의) 요소가 하나도 없는 애노테이션 애노테이션 요소의 규칙1. 요소의 타입은 기본형, String, Enum, ..
-
우아한테크캠프 Day10우아한테크캠프 2018. 7. 14. 01:29
할 줄 아는 것만 하면 지금보다 나아질 수 없다 (From 쿵푸팬더) Day10 학습 내용 오늘은 무한도전에 나오셨던 한명수 이사님의 특강을 들었다. 개인적으로 많은 것을 생각할 수 있었던 뜻 깊은 시간이었다. 우리는 흔히 무언가를 알고 있다고 착각한다. 스스로가 용어에 대한 정의를 명확히 내려야 한다 (include 추상적인 개념)ex) 개발이란, 창의력이란, 포트폴리오란 etc ... 개념에 대한 정의가 명확히 있다면 결과는 다르다. (방향성이 생기기 때문에) 깊이 있게 하려면 그 일을 좋아해야 한다.의미가 있지 않다면 그 일을 할 이유가 없다. 쉬운 인터페이스 뒤에 엄청난 고민과 노력이 있다. 두 번째 특강으로 "자바 ORM 표준 JPA 프로그래밍" 책을 집필하신 김영한 님의 강의를 들었다. 유쾌하..
-
자바 ORM 표준 JPA우아한테크캠프 2018. 7. 13. 01:08
데이터베이스 방언SQL 표준을 따르지 않거나, 특정 데이터베이스만의 고유한 기능(각각의 데이터베이스가 제공하는 SQL문법과 함수는 조금씩 다르다.) JPA는 특정 데이터베이스에 종속적이지 않은 기술hibernate.dialect 속성을 지정하면 된다. 하이버네이트는 45가지 방언을 지원한다. 데이터베이스 방언을 이용해서 데이터베이스에 맞는 적절한 쿼리문을 생성한다. 애플리케이션 개발1. 엔티티 매니저 팩토리 생성2. 엔티티 매니저 생성3. 트랜잭션 생성4. 비지니스 로직(CRUD) 엔티티 매니저 팩토리는 한개만 생성해서 애플리케이션 전체에서 공유한다.엔티티 매니저는 스레드간에 공유를하면 안된다. (사용하고 버려야 한다.)JPA의 모든 데이터 변경은 트랜잭션 안에서 실행된다. 객체지향쿼리 JPQLJPA는 ..
-
우아한테크캠프 Day09우아한테크캠프 2018. 7. 12. 20:53
오늘은 호눅스의 첫 번째 수업이었다. 주제는 git, 원리 위주의 수업이었다. Day09 학습 내용 Git의 물리적인 저장소워킹 디렉토리스테이지로컬 저장소원격 저장소 git init : 초기화 .git = 로컬저장소※ 개발자는 워킹 디렉토리를 건드릴 뿐, 로컬 저장소를 건들지는 않는다. git status : 워킹 디렉토리와 stage의 차이점을 보여주는 명령어 git add : 변경사항을 stage(index)에 올리는 명령어※ 물리적으로 stage는 .git 안에 있다. (논리적으로 이해하기 쉽게 별도의 공간이 있다고 그리는 것일 뿐) git commit : 스냅 샷(저장)하는 명령어 ※ 커밋하는 이유? 특정 커밋한 시점으로 되돌아가기 위해 커밋도 .git에 저장한다. commit은 항상 부모에 대한..
-
우아한테크캠프 Day08우아한테크캠프 2018. 7. 12. 17:37
학습에 있어 가장 중요한 건 지치지 않고 꾸준히 가는 것이다. (일정한 리듬을 만들면서 가는 게 더 중요하다)by. 박재성 교수님 테스트 코드관련 피드백SessionUtils에 대한 테스트코드를 작성해볼 생각은 안 했나? 세션에 대한 테스트는 어떻게 할 수 있나?SessionUtils은 테스트하기 어렵지 않기 때문에 테스트 코드를 작성하면 좋다. (유틸 클래스는 단위테스트하기 좋다.) 테스트 코드의 장점단위테스트를 하다 보면 자연스럽게 버그를 찾게 된다. 테스트 코드 작성 팁메소드 하나 만들 때마다 단위테스트를 진행할 것코드를 작성할 때와 테스트하는 시점이 멀어지면 멀어질수록 디버깅하기가 어려워진다. Day08 학습 내용 최종적으로 Exception을 잡아서 제어해야 하는 곳은 컨트롤러다. 코드를 작성할..
-
우아한테크캠프 Day07우아한테크캠프 2018. 7. 11. 09:00
상태 값을 가지는 객체에 메시지를 보내 일을 시켜라.장점1. 로직에 대한 중복 제거2. 테스트하기 쉬워짐 테스트하기 어려운 코드(DB에 종속적인 코드)와 테스트하기 쉬운 코드를 분리해야 한다. 특히, API를 만드는 관점에서 메소드를 만들면 좋다. (ex. 회원 정보를 업데이트하는 메소드 내에 비밀번호를 검사하는 부분이 없다면, 사용하는 입장에서 둘 다 호출해줘야 하는 불편함이 생긴다.) 회원 정보를 업데이트하는 메소드 내에 비밀번호 검사하는 부분이 없는 경우@PutMapping("/users/{id}/update") public String update(@PathVariable int id, User user) { User savedUser = users.get(id); if (!user.matchPa..
-
Git과 Github 정리우아한테크캠프 2018. 7. 10. 21:45
로컬 저장소 사용을 위한 Git git branch와 git checkoutgit branch와 git checkout을 한 번에 실행하는 방법 : git checkout -b '브랜치이름' git merge브랜치 병합 : git merge (해당 브랜치를 가져와서 병합)ex) 기준이 되는 브랜치(master)에서 git merge를 수행한다. 이렇게 해야만 master 브랜치가 변경된다. 실제 프로젝트에서 발생할 수 있는 상황들1. 불필요한 파일을 무시하는 법touch .gitignore※ .gitignore파일을 운영체제나 IDE에 맞춰 자동으로 생성해주는 웹사이트 (https://www.gitignore.io/) 2. merge할 때, 충돌 해결하는 법 (수동으로 해결)> step1 3. 커밋한 내..