클라이언트에서 서버로 데이터 전송 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로 ..
비 연결성 HTTP는 기본이 연결을 유지하지 않는 모델 연결을 유지한다면 많은 리소스를 낭비하게 됨 서버에서 동시에 처리하는 요청이 실제로도 적은데 연결을 유지하면 비효율적임 TCP/IP 연결 3way handshake, HTML, CSS, Js, 추가 이미지 등 수 많은 자원이 함께 다운로드됨 → 시간이 많이 들게 됨 HTTP 지속 연결로 문제 해결 요청 후 다 받은 후에 연결을 종료함 HTTP/2, HTTP/3에서는 더 최적화가 됨 무상태로 설계할 수 있으면 무상태가 좋음 HTTP 메시지 HTTP 요청 메시지, 응답 메시지는 구조가 조금씩 다름 요청 메시지 HTTP 메서드 → GET, POST, PUT, DELETE... 요청 대상 → ?쿼리, 절대경로는 “/”로 시작하는 경로 (절대경로[?쿼리]) ..
Apple의 weight를 비교하는 예제에서 :: 는 해당 메소드를 활용하라는 메서드 참조이다. :: 왼쪽에 클래스를, 오른쪽에 활용할 메서드명을 적으면 된다. public class Main { public static void main(String[] args) { List inventory = Arrays.asList( new Apple(80, "green"), new Apple(155, "green"), new Apple(120, "red") ); List heavyApples = inventory.parallelStream().filter((Apple a) -> { return a.getWeight() > 150; }).collect(toList()); } } Apple 클래스에는 color라는..
public class Apple { private Integer weight; public Integer getWeight(){ return weight; } } 이러한 weight를 가지는 Apple이라는 클래스가 있다. public class Main { private static List inventory = new ArrayList(); public static void main(String[] args) { Collections.sort(inventory, new Comparator(){ public int compare(Apple a1, Apple a2){ return a1.getWeight().compareTo(a2.getWeight()); } }); } } Apple 클래스에서 weigh..