전체 글
-
[ch14 람다식] 작성법 예제, 함수형 인터페이스(Functional Interface)프로그래밍 언어/JAVA 2022. 9. 27. 10:01
람다식이란? 람다식(Lambda expression)은 간단히 말해 메서드를 하나의 식으로 표현한 것이다. 람다식은 함수를 간략하면서도 명확하게 표현할 수 있게 해준다. 메서드를 람다식으로 표현하게 되면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수(anoymous function)이라고도 한다. int [ ] arr = new int [5]; Arrays.setAll(arr, (i) -> (int)(Math.random()*5)+1); 위의 람다식 표현은 아래 문장과 동일하다. int method(int i){ return (int)(Math.random()*5)+1; } 모든 메서드는 클래스에 포함되어야 하므로 클래스도 새로 만들어야 하고, 객체도 생성해야만 비로소 이 메서드를 호출할 수..
-
[IntelliJ] Auto import, 자동 임포트 설정하는 방법Tools/IntelliJ 2022. 9. 26. 19:32
이클립스에서는 파일을 저장하면 자동으로 import되는 기능이 있었다. IntelliJ를 사용하다 import 때문에 에러가 생겨 자동 임포트를 설정하려고 한다. 방법은 아주 간단! 1. file -> settings -> editor -> general - auto import 2. 코드 변경에 따른 자동 import : Optimize imports on the fly 옵션은 코드가 변경됨에 따라 자동으로 패키지 import 문을 삽입/삭제 해주는 옵션이다. 필요한 패키지는 자동으로 삽입하고 불필요한 패키지는 자동으로 삭제하므로 매우 편리한 기능이다. 3. 코드 붙여넣기 시 import 옵션 위의 사진에서 insert imports on paste옵션을 선택할 수 있는데 All을 선택한 경우 모두 자..
-
[Spring Boot] 스프링 웹 개발 흐름 살펴보기 - 정적, MVC, APIBack-End/Spring Boot 2022. 9. 26. 18:02
스프링 부트에서 컨트롤러를 통해 화면을 띄우는 방법을 크게 3가지로 나눌 수 있다. 1. 정적 컨텐츠 2. MVC와 템플릿 엔진 3. API 정적 컨텐츠 정적 컨텐츠는 말 그대로 동적인 작업 없이 정적으로 view 페이지에 작성한 내용을 그대로 화면에 출력하는 것이다. resources -> static에 hello-static.html 페이지 작성 후 localhost:8080/hello-static.html url 검색 시 화면이 출력된다. 정적 컨텐츠 입니다. MVC와 템플릿 엔진 MVC는 Model, View, Controller를 의미한다. @GetMapping("hello-mvc") public String helloMvc(@RequestParam(value="name", required = ..
-
[SpringBoot] IntelliJ 프로젝트 cmd로 빌드하기Back-End/Spring Boot 2022. 9. 26. 14:54
프로젝트를 IntelliJ에서 쉽게 run 통해 빌드할 수 있지만, 만약 프로젝트를 배포한다면 cmd로 실행할 줄 알아야한다. 그 과정에 대해 정리해볼까 한다. 1. cmd 창 실행 window + r 에서 cmd 검색 일단 cd spring-study처럼 c드라이브 사용자에서 스프링 프로젝트가 있는 폴더에 접근한다. 명령어는 cd 2. gradlew.bat build 입력 후 cd build 입력. os를 사용하고 있어 cd libs가 아닌 dir을 입력해야 한다. 아래 참조 3. dir을 입력하면 해당 디렉터리의 jar 파일 목록을 보여준다. 아래 실행하고자 하는 파일 이름 확인 후 복사해서 아래와 같이 실행하면 빌드 완료! java -jar 프로젝트 이름 IntelliJ로 실행했을때와 똑같이 서버가..
-
[SpringBoot] IntelliJ로 프로젝트 생성 후 실행 방법 ( +Gradle)Back-End/Spring Boot 2022. 9. 26. 14:44
Spring Boot 프로젝트 생성 Spring Legacy Project로 프로젝트를 생성하면 pom.xml에 의존할 라이브러리들을 모두 입력해줘야했다. 여간 번거로운 작업이 아니었기에,, 하지만 부트를 이용하면 클릭 설정 한 번으로 다양한 라이브러리들을 사용할 수 있다. https://start.spring.io/ 위의 페이지에 들어가면 아래와 같은 창이 나온다. 프로젝트 방식과 사용 언어 Spring Boot 버전 데이터 Dependencies를 입력할 수 있다. 스프링 버전을 선택할때는 2.7.5(SNAPSHOT)과 같이 버전 뒤에 괄호가 있는 것은 정식 버전이 아니므로 선택하지 말고, 2.7.4처럼 뒤에 괄호가 없는 것을 선택한다. Group은 보통 기업명, Artifact는 프로젝트명을 입력한..
-
[IntelliJ] 인텔리제이 Ultimate 설치 방법Tools/IntelliJ 2022. 9. 26. 14:06
그동안 java, jsp/servlet, Spring MVC 를 공부하면서 사용한 tool은 eclipse였다. IntelliJ에 대해서 들어보긴 했는데 그냥 쓰던게 편하겠지 싶어 이클립스를 사용했었는데, 이번에 인프런에서 김영한 강사님의 스프링완전 정복 강의를 수강했더니 요즘 현업에서는 IntelliJ를 많이 쓴다고 한다. 그리하여 이번 포스팅은 IntelliJ 설치 방법이다. 1. 페이지 방문 https://www.jetbrains.com/ko-kr/idea/download/#section=windows 다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com Ultimate 버전은 IntelliJ의 전 기능을 제공하지만 Comm..
-
[이클립스]eclipse working set 으로 프로젝트 관리Tools/eclipse 2022. 9. 22. 22:31
지금까지 국비 교육을 들으며 만들었던 project들을 모두 한 workespace에 생성했더니 지저분해 보이기도 하고 나조차 파일 구분도 힘들고 새로운 spring 강의를 들으며 새롭게 workspace를 만들고 시작해볼 계획인데, working set으로 깔끔하게 프로젝트 관리가 가능한 것을 알았다. 이제 알았다니,, 너무 물음표 없이 그냥 그런대로 살았던 것 같다. 좀 더 편한 방법을 찾기 위해 노력해야겠다는 생각과 함께 working set으로 프로젝트 관리하는 방법을 포스팅해볼까 한다. 1. 프로젝트 아무것도 선택하지 않은 상태에서 마우스 우클릭 -> other 클릭 2. working set 검색 후 클릭 3. Working set name 입력 후 원하는 프로젝트 좌측에서 우측으로 Add 후..
-
[기술면접 Spring] Filter, Interceptor, AOP 차이점취업준비/기술면접 2022. 9. 20. 11:46
자바 웹 개발을 하다보면 공통적으로 처리해야 할 업무들이 많다. 예를 들어 로그인 관련(세션체크)처리, 권한체크, PC와 모바일웹의 분기처리, 로그, 페이지 인코딩 변환 등등. 공통 관련된 코드를 모든 페이지 마다 작성 해야한다면 중복된 코드가 많아지게 되고 프로젝트 단위가 커질수록 서버에 부하를 줄 수 있으며 소스 관리도 되지 않는다. 따라서, 공통 부분은 빼서 관리하는 것이 좋다. 공통처리를 위해 활용할 수 있는 방법이 3가지가 있다. Filter, Interceptor, AOP의 흐름 Interceptor와 Filter는 Servlet 단위에서 실행된다. 반면 AOP는 메소드 앞에 proxy패턴의 형태로 실행된다. 요청이 들어오면 Filter -> Interceptor -> AOP ->Interce..