이번 주 목표 모프 시험 공부 및 개인과제를 마무리하자. 개인공부와 시험공부를 병행하자. 2022-4-10 일요일 모프 개인과제를 잠깐 봤다. 모르겠다. 모프 시험공부를 했다. 6 ~ 8단원을 공부했다. 나머지 파트도 리뷰했다. 내일은 5 ~ 8단원 이론과 전체 단원의 예제 코드들을 한번씩 보면 된다. 2022-4-11 월요일 모프 시험공부를 했다. 모프 중간고사 대비 공부를 마무리했다. 2022-4-12 화요일 모프 중간고사를 치뤘다. 스프링과 HTTP를 공부했다. 내일 한이음 스터디와 졸작팀 미팅이 있을 예정이다. 한이음 회원 서비스의 요구사항을 분석했다. 잘 정리한 것인지는 모르겠다. 모프 개인과제를 잠깐 수정해봤다. 아직 안되는 부분이 많다. 2022-4-13 수요일 스프링 강의를 들었다. 모던 ..
자바9의 모듈 시스템은 모듈을 정의하는 문법을 제공한다. 이를 이용해 패키지 모음을 포함하는 모듈을 정의할 수 있다. 자바8에서는 인터페이스를 쉽게 바꿀 수 있도록 디폴트 메서드를 지원한다. 메서드 본문을 클래스 구현이 아니라 인터페이스의 일부로 포함시킨다. 하나의 예시로 List라는 인터페이스에 디폴트 메서드 sort()가 추가되어 List에 바로 sort를 할 수 있게 되었다. 자바8 이전에는 List를 구현하는 모든 클래스가 sort를 구현해야 했지만 자바8이후부터는 디폴트 sort를 구현하지 않아도 된다. 이런 경우 다중상속이 문제가 될 수 있다. 다이아몬드 상속과 같은 경우가 발생할 수 있다는 것이다. 이에 대한 해결책은 나중에 알아보도록 하자. 자바8에서는 Optional 클래스를 제공한다. ..
조회한 빈이 모두 필요할 때, List, Map List 혹은 Map을 활용해 스프링 빈에 등록된 빈들을 한번에 주입이 가능하다. Map라 하면 String에는 빈 이름이 들어간다. public class AllBeanTest { @Test void findAllBean(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); DiscountService discountService = ac.getBean(DiscountService.class); Member member = new Member(1L, "userA", Grade.VIP); int discountPr..
클라이언트에서 서버로 데이터 전송 HTTP 메서드 활용 클라이언트에서 서버로 데이터 전송 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 4가지 상황 (예시) 정적 데이터 조회 이미지, 정적 텍스트 문서 조회는 GET사용 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 동적 데이터 조회 주로 검색, 게시판 목록에서 정렬 필터(검색어) 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용 HTML Form을 통한 데이터 전송 회원 가입, 상품 주문, 데이터 변경 HTML Form은 GET, POST 전송 가능 HTTP API를 통한 데이터 ..
이번 주 목표 안드로이드 프로그래밍 개인과제를 끝내자. 시험공부와 스프링 공부를 병행하자. 2022-4-1 금요일 자바스터디를 준비했다. 클래스와 객체의 static멤버 부분부터 상속에서 업캐스팅과 instanceof 부분까지 준비했다. 모바일프로그래밍 과제를 진행했다. 모르는 부분이 많아 많이 찾아보고 고쳤다. 2022-4-2 토요일 모바일프로그래밍 과제를 진행했다. 어렵다. 2022-4-3 일요일 모바일프로그래밍 과제를 했다. 하루종일 오류 한개 고치려고 하다가 다 안돌아가서 멘탈이 다 나갔다. 오늘까지 다하려고 했지만 다음에 다시 봐야겠다. 2022-4-4 월요일 자바 멘토링을 준비했다. 저번에 준비했던 내용을 다시 검토했다, 모바일프로그래밍 과제를 했다. recyclerview를 메인 액티비티의 ..
package org; public class Company { String name; Department[] departments; String location; int assets; double growthRate; public Company(String name, Department[] departments, String location, int assets, double growthRate) { this.name = name; this.departments = departments; this.location = location; this.assets = assets; this.growthRate = growthRate; } public Company(){ System.out.println("새로운..
이번 주 목표 JavaScript를 공부하자. 스프링을 공부하자. 개인 앱 출시를 준비하자. 모바일프로그래밍 시험 공부를 하자. 2022-3-27 일요일 한이음 사전 킥오프 미팅을 했다. 회원 서비스를 맡기로 했다. 스프링부트와 JWT기반 시큐리티를 많이 공부해야겠다. 자바 스크립트를 공부했다. HTML 요소, 폼, 애니메이션 효과 파트를 공부했다. 다음에는 그림/사운드/영상 파트부터 보면 된다. 모바일프로그래밍 시험 공부를 했다. 3장까지 한번 봤다. 2022-3-28 월요일 자바스크립트를 공부했다. 드디어 다 봤다. 모바일프로그래밍을 공부했다. 3장까지 책으로 다시 공부했다. 코틀린 문법 부분도 한번씩 봤다. 2022-3-29 화요일 자바 멘토링을 진행했다. 클래스와 객체 부분을 들어가니 스터디원들이..
다양한 DI 방법 생성자 Setter 필드 일반 메소드 생성자 주입 방식 (요즘 가장 많이 쓰는 방식) 불변(final)이면서 필수인 의존관계에서 주로 사용 생성자 1개만 있다면 Autowired를 생략해도 주입됨(Bean, Component 방식 모두 해당) final 필드를 this로 접근 가능한 생성자 사용 수정자 Setter 주입 선택, 변경이 가능성이 있는 의존관계에서 주로 사용 Autowired의 기본 동작은 주입할 대상이 없으며 오류가 발생하고, 주입할 동작이 없어도 동작하게 하려면 @Autowired(required = false) 로 지정하면 된다. 자바빈 프로퍼티 규약의 수정자 메서드 방식을 사용하는 방법 자바빈 프로퍼티 규약이란 필드를 외부에서 접근할 때 Getter, Setter로 ..