'TIL' 카테고리의 다른 글
Kubelet, Kubectl, Ingress 가뭐냐 (0) | 2024.02.14 |
---|---|
2024.01.31 쿠버네티스 공부 (2) | 2024.01.31 |
SVN vs Git (1) | 2022.12.11 |
JPA fetchType (EAGER, LAZY) (0) | 2022.12.06 |
디자인패턴 - 컴포지트 패턴 (Composite Pattern) (0) | 2022.11.12 |
Kubelet, Kubectl, Ingress 가뭐냐 (0) | 2024.02.14 |
---|---|
2024.01.31 쿠버네티스 공부 (2) | 2024.01.31 |
SVN vs Git (1) | 2022.12.11 |
JPA fetchType (EAGER, LAZY) (0) | 2022.12.06 |
디자인패턴 - 컴포지트 패턴 (Composite Pattern) (0) | 2022.11.12 |
reference
2024.01.31 쿠버네티스 공부 (2) | 2024.01.31 |
---|---|
Web Application Firewall(WAF) (0) | 2023.11.16 |
JPA fetchType (EAGER, LAZY) (0) | 2022.12.06 |
디자인패턴 - 컴포지트 패턴 (Composite Pattern) (0) | 2022.11.12 |
디자인패턴 - 프록시 패턴 (Proxy Pattern) (0) | 2022.11.08 |
서로의 Entity가 N:1 매핑이 되어있는 상태에서 fetch 설정을 할 수 있음
Reference:
Web Application Firewall(WAF) (0) | 2023.11.16 |
---|---|
SVN vs Git (1) | 2022.12.11 |
디자인패턴 - 컴포지트 패턴 (Composite Pattern) (0) | 2022.11.12 |
디자인패턴 - 프록시 패턴 (Proxy Pattern) (0) | 2022.11.08 |
프로그래머스 SQL 고득점 Kit 도장깨기 (0) | 2022.10.29 |
Component: IAnimal.java
// Component 역할
interface IAnimal {
public void speak();
}
Leaf: Cat.java
public class Cat implements IAnimal{
@Override
public void speak() {
System.out.println("야옹");
}
}
Leaf: Dog.java
public class Dog implements IAnimal{
@Override
public void speak() {
System.out.println("멍멍");
}
}
Composite: AnimalGroup.java
// Composite 역할
public class AnimalGroup implements IAnimal {
private List<IAnimal> animalGroup = new ArrayList<IAnimal>();
public void speak() {
for (IAnimal animal : animalGroup) {
animal.speak();
}
}
public void add(IAnimal animal) {
animalGroup.add(animal);
}
public void remove(IAnimal animal) {
animalGroup.remove(animal);
}
}
Client: Main.java
public class Main {
public static void main(String[] args) {
// 강아지그룹, 고양이그룹 생성
AnimalGroup dog_group = new AnimalGroup();
AnimalGroup cat_group = new AnimalGroup();
// 강아지 2마리, 고양이 3마리 만들어서 각 그룹에 넣기
Dog dog1 = new Dog();
Dog dog2 = new Dog();
Cat cat1 = new Cat();
Cat cat2 = new Cat();
Cat cat3 = new Cat();
dog_group.add(dog1);
dog_group.add(dog2);
cat_group.add(cat1);
cat_group.add(cat2);
cat_group.add(cat3);
// 강아지그룹과 고양이그룹을 동물원이라는 그룹안에 넣겠음
AnimalGroup zoo = new AnimalGroup();
zoo.add(dog_group);
zoo.add(cat_group);
// 동물원의 모든 동물들을 speak 해보겠음
zoo.speak();
}
}
결과는 다음과 같이 나온다.
멍멍
멍멍
야옹
야옹
야옹
SVN vs Git (1) | 2022.12.11 |
---|---|
JPA fetchType (EAGER, LAZY) (0) | 2022.12.06 |
디자인패턴 - 프록시 패턴 (Proxy Pattern) (0) | 2022.11.08 |
프로그래머스 SQL 고득점 Kit 도장깨기 (0) | 2022.10.29 |
URI, URL, URN 차이 (0) | 2022.10.25 |
IService.java
public interface IService {
String runSystem();
}
Service.java
public class Service implements IService {
@Override
public String runSystem() {
return "시스템을 실행합니다."
}
}
Proxy.java
public class Proxy implements IService {
IService service1;
@Override
public String runSystem() {
System.out.println("대신실행 하겠습니다.")
service1 = new Service();
return service1.runSystem();
}
}
Main.java
public class Main {
public static void main(String[] args) {
IService proxy = new Proxy();
System.out.println(proxy.runSystem());
}
}
Main.java 실행결과
JPA fetchType (EAGER, LAZY) (0) | 2022.12.06 |
---|---|
디자인패턴 - 컴포지트 패턴 (Composite Pattern) (0) | 2022.11.12 |
프로그래머스 SQL 고득점 Kit 도장깨기 (0) | 2022.10.29 |
URI, URL, URN 차이 (0) | 2022.10.25 |
디자인패턴 - 퍼사드 패턴 (Facade Pattern) (1) | 2022.10.25 |
https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit
코테를 볼때마다 얕은 SQL 지식때문에 뭔가 풀 수 있을 것 같은데 못푸는 경험을 자주 했다.
여러 예제들을 풀어보면서 SQL 문법과 함수들을 익히는 시간이 필요하다고 생각해서
일단 프로그래머스의 SQL 고득점 Kit부터 싹다 풀어봤다.
과일로 만든 아이스크림 고르기
재구매가 일어난 상품과 회원 리스트 구하기
역순 정렬하기
아픈 동물 찾기
어린 동물 찾기
동물의 아이디와 이름
여러 기준으로 정렬하기
상위 n개 레코드
조건에 맞는 회원수 구하기
가장 비싼 상품 구하기
최댓값 구하기
최솟값 구하기
동물 수 구하기
중복 제거하기
성분으로 구분한 아이스크림 총 주문량
고양이와 개는 몇 마리 있을까
동명 동물 수 찾기
년, 월, 성별 별 상품 구매 회원 수 구하기
입양 시각 구하기(2)
가격대 별 상품 개수 구하기
경기도에 위치한 식품창고 목록 출력하기
이름이 없는 동물의 아이디
이름이 있는 동물의 아이디
NULL 처리하기
나이 정보가 없는 회원 수 구하기
그룹별 조건에 맞는 식당 목록 출력하기
없어진 기록 찾기
있었는데요 없었습니다
오랜 기간 보호한 동물(1)
보호소에서 중성화한 동물
상품 별 오프라인 매출 구하기
상품을 구매한 회원 비율 구하기
최소되지 않은 진료 예약 조회하기
루시와 엘라 찾기
이름에 el이 들어가는 동물 찾기
중성화 여부 파악하기
오랜 기간 보호한 동물(2)
카테고리 별 상품 개수 구하기
디자인패턴 - 컴포지트 패턴 (Composite Pattern) (0) | 2022.11.12 |
---|---|
디자인패턴 - 프록시 패턴 (Proxy Pattern) (0) | 2022.11.08 |
URI, URL, URN 차이 (0) | 2022.10.25 |
디자인패턴 - 퍼사드 패턴 (Facade Pattern) (1) | 2022.10.25 |
디자인패턴 - 전략 패턴 (Strategy Pattern) (0) | 2022.10.22 |
참고로, 예시 2번의 URI를 브라우저의 주소창에 입력하면 구글에서 JavaScript를 검색한 결과가 나타난다.
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
tel:+1-816-123-1234
참고 이미지
디자인패턴 - 프록시 패턴 (Proxy Pattern) (0) | 2022.11.08 |
---|---|
프로그래머스 SQL 고득점 Kit 도장깨기 (0) | 2022.10.29 |
디자인패턴 - 퍼사드 패턴 (Facade Pattern) (1) | 2022.10.25 |
디자인패턴 - 전략 패턴 (Strategy Pattern) (0) | 2022.10.22 |
객체지향 개발 5대 원리, SOLID (0) | 2022.10.21 |
관련한 내용들을 Class로 작성할 수 있을 것. (일부 생략)
public class Remote_Control {
public void Turn_On() {
System.out.println("TV 키기");
}
public void Turn_Off() {
System.out.println("TV 끄기");
}
}
public class Movie {
private String name = "";
public Movie(String name) {
this.name = name;
}
public void Search_Movie() {
System.out.println(name + " 영화를 찾다");
}
public void Charge_Movie() {
System.out.println("영화 결제");
}
public void Play_Movie() {
System.out.println("영화 재생");
}
}
public class Beverage {
private String name = "";
public Beverage(String name) {
this.name = name;
}
public void Prepare() {
System.out.println(name + "음료 준비 완료");
}
}
public class Facade {
private String beverage_name = "";
private String movie_name = "";
public Facade(String beverage_name, String movie_name) {
this.beverage_name = beverage_name;
this.movie_name = movie_name;
}
public void View_Movie() {
Beverage beverage = new Beverage(beverage_name);
Remote_Control remote = new Remote_Control();
Movie movie = new Movie(movie_name);
beverage.Prepare();
remote.Turn_On();
movie.Search.Movie();
movie.Charge_Movie();
movie.Play_Movie();
}
}
public class Facade {
public void view() {
Facade facade = new Facade("Coke", "Avengers");
facade.View_Movie();
}
}
프로그래머스 SQL 고득점 Kit 도장깨기 (0) | 2022.10.29 |
---|---|
URI, URL, URN 차이 (0) | 2022.10.25 |
디자인패턴 - 전략 패턴 (Strategy Pattern) (0) | 2022.10.22 |
객체지향 개발 5대 원리, SOLID (0) | 2022.10.21 |
동기 vs 비동기, Blocking vs Non-Blocking (0) | 2022.10.19 |