분류 전체보기 (9) 썸네일형 리스트형 임시저장 테스트 1 122 전략 패턴 1. 전략 패턴이란?객체의 행위를 바꾸고 싶은 경우, 파라미터에 행위의 방법 객체를 넣어서 해당 방법 객체의 클래스에서 구현된 행위를 사용하는 방법, 해당 행위 구현부의 파라미터를 인터페이스 설정하여 인터페이스를 기반으로 구현된 여러 클래스의 유연한 사용을 가능하게 한다.class 행위1 implements 행위_인터페이스{ ...}class 행위2 implements 행위_인터페이스{ ...}class System{ void pay(행위_인터페이스 행위_){ 행위_pay(); }}void main(){ System system = new System(); system.pay(new 행위1()); system.pay(new 행위2());} 위의 수도 코드에서 하.. SingleTon And Factory Pattern 1. 싱글톤 패턴 (Singleton Pattern)✅ 정의하나의 객체를 공유해서 사용하는 패턴클래스 내부에 단 한 번만 객체를 생성하고, 계속 그 객체만 반환✅ 핵심 개념하나의 클래스 변수에 단 한 번 객체가 할당되고, 이후에는 바뀌지 않음모든 코드에서 동일한 인스턴스를 공유함🤝 의존성 주입(DI)과 결합도 완화의존성 주입: 클래스의 멤버변수를 생성자를 통해 외부에서 주입하는 방식🔹 장점다양한 구현체(MemberRepo, SalesRepo 등)를 유연하게 주입 가능테스트 코드에서 MockRepo 등으로 교체 쉬움🔹 단점 (DI를 사용하지 않을 때)클래스 내부에서 new로 직접 생성하면,특정 구현체로 고정됨테스트 및 확장이 어려움결합도 상승❗ 오해 주의싱글톤은 하나의 테스트에서 한 객체를 공유하는 .. Dependency Injection Principle 1. 의존성 주입이란 Dependency Injectiondependency injection : 의존성 주입1. 의존성 주입이란의존하고 있는 클래스의 객체를 멤버변수로 사용하는 것이다. 2. 의존이란특정 클래스에 의지를 하고 있는 상태이다. 예를들면 "나"라는 클래스halo-server.tistory.com 2. 의존성 주입 원칙 3가지가. 의존성은 외부에서 주입받자 나. 의존성 역전 원칙 (DIP)유연한 클래스 생성자 파라미터 사용을 목적으로 의존성 주입 코드 작성 시, 생성자 파라미터는 인터페이스 객체로 설정한다. 이것을 DIP, Dependency Inversion Pricipal 을 따른다고 한다.D : 의존성Inversion : 역전, 옛날에는 상위 모듈이 하위 모듈(의존하던 모듈)에 의.. Dependency Injection dependency injection : 의존성 주입1. 의존성 주입이란 의존하고 있는 클래스의 객체를 멤버변수로 사용하는 것이다. 2. 의존이란 특정 클래스에 의지를 하고 있는 상태이다. 예를들면 "나"라는 클래스 안에 "손"이라는 클래스를 사용한다고 생각해보자. 아래와 같이 코드를 작성하면 "손"의 클래스가 변할 시 "나"의 클래스에 영향을 미친다.class 나{ 손 my손 = new 손();}class 손{} 위와 같은 상황에서는 "나" 클래스가 "손" 클래스에 의존(의지)하고 있다고 말할 수 있다. 3. 왜 의존성 주입을 사용하는거지? 아래와 같이 "손"의 객체를 "나" 클래스의 멤버로 할당하면 "손" 클래스의 멤버를 맘대로 사용할 수 있으면서 "손" 클래스가 변경이 있어도 "나" 클.. Transaction 1. Transaction이란 무엇이냐 성공과 실패밖이 존재하지 않는 과정이다. 여기서 성공이라는 것은 결과를 반영한다는 것이고 실패는 반영하지 않는 것을 의미한다. 무슨 결과일까? 그것은 바로 사용자가 의도한 결과이다. 2. Transaction 예시 밥을 먹는 행위를 예시를 들 수 있다. 만약 필자가 인도에 가서 손으로 밥을 먹어야하는 행위를 해야 하는데 숟가락을 주지 않는다면, 필자는 밥을 먹을 수 없다. 만약 필자가 손으로 밥을 잡고 입에 넣으면 "밥을 먹는다는 행위를 성공"하게 되는 것이고 위생 문제로 손으로 밥을 집는 행위를 하지 못하면 "밥을 먹는다는 행위를 실패"하게 되는 것이다. 필자 앞에 밥이 있어도, 밥을 집는 척만하고 손에 놓치 않고 먹는 척만 한다면 밥을 먹는 것이 아니라는 것.. 순열 with DFS 0. 해당 글 작성 이유알고리즘 문제들을 풀다보면 굉장히 다양한 푸는 방법들이 존재한다. 필자는 여기서 각 문제 마다 푸는 방식을 떠올리는 것이 중요하다는 것을 느끼고 문제 자체의 해설보다는 문제를 풀기위해 사용했던 알고리즘이나 로직들을 되새기기 위해 해당 방법들을 작성해놓을 예정이다. 이 글의 경우 프로그래머스 소수찾기 문제에서 문자열 순열 부분에서 막혔기 때문에 이 글을 작성하였다. 1. 순열이 무엇이냐 순열은 특정 수열에서 순서를 고려하여 각 수들을 선택하는 방법이다. 직관적으로 생각해보면 수들의 줄 세우기라고 생각할 수 있다. 해당 방법을 코드르 구현하는 방법은 여러가지가 있겠지만 필자는 DFS를 사용해서 구현해보고자 한다. 그리고 필자는 문자열의 순열을 구현할 예정이다. 2. DFS란 무엇이냐.. Cloud 1. 클라우드란? 직역하면 구름으로, 필자는 사용자나 개발자가 언제든지 솜사탕 떼 먹는 것처럼 인터넷만 연결되어 있다면 언제든 다른 컴퓨팅 자원을 사용하게 해주는 "서비스"라고 표현하고 싶다. 예를 들어, 유튜브의 영상을 생각해보자. 과거에는 영상을 직접 자신의 저장소에 저장해서 사람들에게 직접 가서 보여줘야했다. 하지만 이제 유튜브에 올리면 사람들이 찾아서 볼 수 있다. 이 "영상"이라는 단어를 모든 카테고리에 확장 시킬 수 있다. 2. 클라우드는 무슨 컴퓨팅 자원을 제공할까 음악, 서버 그리고 프로그램 등등 단순하면서 복합적인 것 혹은 모든 것들이 될 수 있다. 개발자는 DB 클라우드 서비스를 이용할 수 있다. 직접 DB를 자신의 옆에 놓지 않아도 AWS나 Microsoft Azure에서 자신.. 이전 1 2 다음