자바6 익명 클래스, 함수형 인터페이스 그리고 람다 목차익명 클래스함수형 인터페이스람다식람다식 작성람다식 사용 자바는 객체를 1급 시민으로 갖는다 1급 시민이란 변수에 담을 수 있다인자로 전달할 수 있다반환값으로 전달할 수 있다 다음과 같은 조건을 충족하는 것을 말하고 자바는 객체 지향 프로그래밍에 맞게객체를 1급 시민으로 갖고 있다 하지만함수형 프로그래밍이 대두되면서함수를 객체로 담을 수 없는 자바는 💡이를 가능하게 하고자 함수형 인터페이스를 가지고 람다식을 도입하여 함수도 1급 시민처럼 사용할 수 있게 했다 익명 클래스앞서 말한 함수를 1급 시민처럼사용할 수 있게 된 배경을 알기 위해선익명 클래스로 거슬러 올라간다 예전 알고리즘 문제를 풀 때어떤 객체를 만들고 그 객체의 한 요소를 기준으로정렬을 하고 싶을 때아래와 같이 구현을 했었다 Collectio.. 2021. 3. 14. 스프링부트, 그래들 프로파일 목차스프링부트 프로파일 설정application-{profile}.properties 생성application.properties 설정+ Configuration 설정그래들 프로파일 설정build.gradle 설정실행시 옵션 지정참고 로컬과 개발환경, 서비스 환경에 따라설정을 다르게 하고 싶을 때프로파일을 설정하고 사용할 수 있다 💡이 때 방법으로스프링 자체에서 기능을 사용하는 방법과프로젝트 관리 도구인 그래들이나 메이븐을 사용하는 방법 ( 여기서는 그래들 사용 )두 가지가 있다 스프링부트 프로파일 설정소스는 그대로 빌드 후스프링 프레임워크가 설정된 프로파일을 사용 application-{profile}.properties 생성 ex) application-prod.properties, applicati.. 2021. 2. 10. 스프링 MVC 구조 및 동작 목차1️⃣ URL 요청2️⃣ URL 매핑3️⃣ 데이터 조회4️⃣ 데이터 가공5️⃣ 뷰 이름 전달6️⃣ 클라이언트에 응답서버 사이드 렌더링 MVC 구조라 하면 ModelViewController 로 구성된 구조를 뜻하고 최대한 간단하게 표현하면아래와 같은 구조를 말한다 쉽게이름 그대로의 기능을 가지고 있다고 보면 되고 스프링 MVC는 이러한 구조를 이용하기 더욱 쉽게 만들어 준다 그리고 좀 더 자세한 구조와 동작을 보면 다음과 같다 스프링 MVC 구조 1️⃣ URL 요청일반적으로 클라이언트는 url을 통해 서버에 요청을 보낸다 2️⃣ URL 매핑보통 해당 서버로 오는 모든 url요청은프론트 컨트롤러가 가장 먼저 받게 된다 디스패처 서블릿이 프론트 컨트롤러 역할을 수행하며 가장 앞단에서 url요청을 받아해당.. 2021. 1. 31. Autowired 의존관계 주입 목차필드 주입setter 주입생성자 주입생성자 주입이 좋은 이유참고 @Autowired를 통해 의존관계(객체)를 주입하는 방법에는크게 3가지 필드 주입setter 주입생성자 주입 이 있고 각 특징은 간단하게 다음과 같다 필드 주입 @Autowired private Item item;필드를 통해 의존관계를 주입한다 장점필드에 사용하면 되므로 가장 간단하고@Autowired 외에 코드를 추가할 필요가 없다단점setter 없이는 수정이나 다른 객체 주입이불가능하며 결합성이 높아진다 setter 주입 @Autowired public void setItem(Item item) { this.item = item; }setter 함수를 통해 의존관계를 주입한다 장점추후에 따로 호출하여다른 객체로 교체할 수 있다단점의.. 2021. 1. 29. UTF-8, CharacterEncoding 서블릿을 공부하다 보면 setCharacterEncoding("UTF-8")을 하며 문자 인코딩을 "UTF-8"로 세팅하는 경우를 볼 수 있고이를 하지 않으면 한글이 깨지는 걸 볼 수 있다 UTF-8에 대한 정의를 살펴 보면 UTF-8유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나로인터넷 사이트에서 가장 많이 쓰이는 인코딩유니코드전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록설계된 산업 표준 다음과 같기 때문에 서블릿에서도 UTF-8 을 설정하게 되는데정확히 어떨 때 사용하는지 알아보자 responseresponse.setCharacterEncoding("UTF-8");응답 인코딩을 UTF-8로 설정한다즉, 출력 방식을 UTF-8로 한다 response.setContentType.. 2021. 1. 15. 객체 지향과 다형성 그리고 SOLID 객체 지향 프로그래밍다형성SOLID참고객체 지향 프로그래밍말 그대로 '객체'를 지향하는 프로그래밍.코드를 단순한 명령어가 아닌 '객체'로서 바라봄객체한 묶음으로 상태 값과 기능을 가지는 현실 세계의 사물과 같은 개념객체 간 데이터 교환과 관계를 통해 작업을 진행다형성필요한 기능을 정의하여 그 기능을 가진 객체들을 유연하게 바꿔가며 사용할 수 있음 객체 또는 사용자가 필요한 기능을 연결고리(인터페이스)로 정의하고 이를 사용그럼 이 자리에는 연결고리를 갖고 있는(인터페이스를 구현한) 객체가 들어감으로써서로 다른 객체여도 사용자가 필요로 하는 연결고리만 갖고 있으면 정상 동작을 보증예시노트북에 USB-C 단자라는 연결고리가 있다면 이 연결고리를 통해 64GB 용량을 가지는 메모리, 128GB 용량을가지는 메모.. 2021. 1. 5. 이전 1 다음