728x90

Study Record 14

[Core] @ComponentScan

Appconfig에서 일일이 @Bean을 달기 힘들다 → @ComponentScan 해결 @ComponentScan   ● ComponentScan은 @Component가 붙은 모든 Class를 스프링 빈으로 등록한다.  ● @Component 뿐만 아니라 @Service, @Controller, @Repository, 등이 있다.     - @Controller : 스프링 MVC컨트롤러로 인식     - @Repository : 데이터 접근 계층으로 인식.     - @Service : 비즈니츠 계층 인식용( 딱히 기능이 없다고 한다.)   ● Filter    includeFilters, excludeFilters를 이용하여 컴포넌트스캔에 추가할 혹은 제외할 대상을 지정할 수 있다.@Configura..

[Lecture-Core] Singleton

순수 DI컨테이너(AppConfig)에서는 요청마다 객체를 생성한다.→ 100건의 요청마다 100개의 객체를 생성 → 낭비 발생   ★해결책: 객체가 1개만 생성되고 공유하도록 설계한다 → 싱글톤(Singleton)패턴// 싱글톤 컨테이너 사용ApplicationContext ac = newAnnotationConfigApplicationContext(AppConfig.class); //1. 조회: 호출할 때 마다 같은 객체를 반환 MemberService memberService1 = ac.getBean("memberService", MemberService.class); //2. 조회: 호출할 때 마다 같은 객체를 반환 MemberService memberService2 = ac.getBean("me..

[24/02/27] Stream/ @AllArgsConstructor/ @NoArgsConstructor

▣ Stream : 컬렉션을 처리하기 위한 새로운 추상화.(Java8부터 도입) List myList = Arrays.asList("apple", "banana", "orange", "grape"); // 중간 연산: 문자열의 길이가 5 이상인 요소를 필터링 Stream filteredStream = myList.stream().filter(s -> s.length() >= 5); // 최종 연산: 각 요소를 출력 filteredStream.forEach(System.out::println); ▣ @AllArgsConstructor : 클래스의 모든 필드를 인자로 받는 생성자를 자동으로 생성해주는 기능 제공(Lombok) import lombok.AllArgsConstructor; @AllArgsCons..

Study Record 2024.02.27

24/02/19 백준(Greedy - 9/50)

◈ 백준(Greedy) - 1213*, 16435, 15903 ◈ SQL Lv2 - 자동차 평균 대여 기간 구하기** ● ROUND(AVG(DATEDIFF(END_DATE,START_DATE)+1),1) - ROUND( X, 1) : X를 소수 둘째자리에서 반올림( 소수 1자리 수로 표기한다.) - DATEDIFF(Y,Z) : 날짜 차이 계산( +1은 10.19~10.20 일때 2일이기 때문이다.) 고득점 KIT (JOIN - 오랜 기간 보호한 동물(1)*, 없어진 기록 찾기*,있었는데요 없었습니 주문량이 많은 아이스크림들 조회하기*, 5월 식품들의 총매출 조회하기, 그룹별 조건에 맞는 식당 목록 출력하기*) ● LEFT JOIN vs (INNER) JOIN - LEFT JOIN : 왼쪽 테이블의 모든 ..

Study Record 2024.02.20

24/02/18 백준 1946(6/50)

◈ 백준(Greedy) - 1946** ■ Comparable vs Comparator https://st-lab.tistory.com/243 ● Comparable과 Comparator는 모두 인터페이스(interface)라는 것이다. 즉, Comparable 혹은 Comparator을 사용하고자 한다면 인터페이스 내에 선언된 메소드를 '반드시 구현'해야한다. - Comparable은 CompareTo(T o) 메서드를 Override해서 사용하여야 한다. 자기 자신과 매개변수 객체를 비교 - Comparator은 Compare(T o1, T o2) 메서드를 Override해서 사용하여야 한다. 두 매개변수 객체를 비교 class Student implements Comparable { int age;..

Study Record 2024.02.19

24/02/16

◈ 백준 Greedy(5/50) - 1715**, 16953, 10610** ■ 우선순위 큐(Priorty Queue) - 1715 import java.util.* //int형 priorityQueue 선언 (우선순위가 낮은 숫자 순) PriorityQueue priorityQueue = new PriorityQueue(); //int형 priorityQueue 선언 (우선순위가 높은 숫자 순) PriorityQueue priorityQueue = new PriorityQueue(Collections.reverseOrder()); .add(value) 또는 offer(value) 매서드를 사용하여 value값을 추가. .poll() : 첫번째 값을 반환하고 제거 .remove() : 첫번째값 제거 .c..

Study Record 2024.02.17

24/02/15 SQL Lv2

◈ SQL(자동차 종류별 특징... , 상품 별 오프라인 매출 구하기*, 루시와 엘라찾기, 3월에 태어난 여성 회원.. , 가격대별 상품 개수 구하기*) ■ JOIN ON vs JOIN USING ● JOIN ON SELECT * FROM table1 JOIN table2 ON table1.column_name = table2.column_name; ● JOIN USING SELECT * FROM table1 JOIN table2 USING (column_name); JOIN ON : 어떤열을 기준으로 JOIN하는지 명확하게 확인이 가능 JOIN USING : 공통열의 이름만 나열하면 간결하게 작성가능. BUT, 공통 열이 여러개인 경우 사용이 제한 ■ TRUNCATE (특정 자리수에서 버림) SELEC..

Study Record 2024.02.16

24/02/14 - Swagger, MappingJacksonValue, HATEOUS

@JsonIgnoreProperties(value = {"password","ssn"}) public class User { //@JsonIgnore @Schema(title = "사용자 id", description = "비번입렵") private String password; //@JsonIgnore @Schema(title = "사용자 id", description = "ssn입력") private String ssn; ◈ Restful Web Services개발 ■ Response 데이터 제어하기(외부에 데이터를 보여주고 싶지 않을때) ● @JsonIgnoreProperties(value = {"password","ssn"}) OR //@JsonIgnore 어노테이션 추가하기 ■ MappingJa..

Study Record 2024.02.15

24/02/13 SQL Lv2, User mode/Karnel mode, Switch

◈ SQL(NULL 처리하기*, 가격이 제일 비싼 식품의 정보*, 카테고리 별 상품 개수* 구하기, 중성화 여부 파악하기*, 고양이와 개는 몇마리 있을까, 진료과별 총 예약 횟수 출력하기, 입양 시각 구하기(1)* ■ NULL처리 ● IFNULL 처리하기 - SELECT IFNULL(NAME, "No name") : Name Column값이 Null일때 No name으로 처리 ● CASE 사용 SELECT ANIMAL_TYPE CASE WHEN NAME IS NULL THEN 'No name' ELSE NAME END AS NAME ■ 출력할 String 조절하기 ● SELECT LEFT(PRODUCT_CODE,2) CATEGORY - 왼쪽에서부터 2자리까지 출력 ● CASE WHEN COLUMN_NAM..

Study Record 2024.02.13
728x90