[Java/스프링 입문] AOP - AOP가 필요한 상황, 적용(공통 관심 사항, 핵심 관심 사항, @Aspect, @Around, joinPoint.proceed, @Bean, 프록시)
들어가며🎯 AOP: Aspect-oriented programming, 관점 지향 프로그래밍- Aspect: 흩어진 기능을 모을 때 사용하는 것- Concern: 서로 다른 클래스라고 하더라도 비슷한 기능을 하는 부분각 Concern 별로 Aspect를 만들어주고, 어느 클래스에서 사용하는지 입력해 주는 방식입니다. 우측 그림이 Aspect로 모듈화 한 것을 보여주는 것입니다. 각 모듈에는 Advice와 Pointcut이 있습니다.- Advice: 해야할 일, 기능- Pointcut: 어디에 적용해야 하는지 나타내는 것 (ex: 클래스 A의 w 메서드)- Target: 각 클래스, 즉 적용이 되는 대상 (ex: 클래스 A, B, C) 1. AOP가 필요한 상황1) 언제 왜 쓰는지?모든 메소드의 호출 시..
[Java/스프링 입문] 회원 관리 예제 - 웹 MVC 개발, 홈 화면 추가/등록/조회(@Controller, @GetMapping, @PostMapping)
들어가며👨🔧 회원 웹 기능: 홈 화면 추가, 등록, 조회(@Controller, @GetMapping, @PostMapping)1. 홈 화면 추가ℹ️ 정적 콘텐츠 동작원리1. 웹 브라우저: localhost:8080 요청이 옵니다.2. 내장 톰캣 서버: 스프링 컨테이너에 관련 컨트롤러가 있는지 확인합니다. (@Controller)3. 내장 톰캣 서버: 관련 컨트롤러가 없다면, 정적 콘텐츠 파일을 찾습니다. (static 폴더 내 파일, index.html)4. 웹 브라우저: static에 있는 index.html을 렌더링합니다. 1) @Controller, home.html// HomeController.javapackage hello.hello_spring.controller;import org...
[Java/Bronze V] 킹, 퀸, 룩, 비숍, 나이트, 폰 - 3003, 배열, Scanner 클래스, for문
문제 설명동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다.체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다.체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다.동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오. 주요 사용 개념배열⚠️배열은 같은 타입의 데이터만 저장할 수 있습니다. (int 배열은 int 값만 저장, String 배열은 문자열만 저장합니다.)한 번 생성된 배열의 길이를 늘리거나 줄일 수 없습니다. 배열 선언타입[ ] 변수;배열 생성값..