분류 전체보기
-
[Spring] 싱글톤 컨테이너BackEnd/Spring 2022. 8. 2. 22:05
웹 애플리케이션과 싱글톤 - 대부분의 스프링 애플리케이션은 웹 애플리케이션 ( 웹이 아닌 애플리케이션 개발도 가능) - 웹 애플리케이션은 보통 여러 고객이 동시에 요청함 - 스프링 없는 순수한 자바코드 : AppConfig 요청 할 때마다 객체를 새로 생성함 - 메모리 낭비가 심함 - 해결방안 : 해당 객체 딱 1개만 생성하고 공유하도록 설계하자 --->>> 싱글톤 패턴 싱글톤 패턴 - 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴 - 객체 인스턴스를 2개 이상 생성하지 못하도록 막자 : private 사용해서 외부에서 임의로 new 사용하지 못하게 막아야함 - 싱글톤 패턴을 사용하는 테스트 코드 : private으로 new 키워드를 막아두었기에 호출할 때 마다 같은 객체 인스턴스를 ..
-
[AWS] Putty Network Error : Connection timed out클라우드/Error 2022. 8. 1. 15:11
https://dreaminggore00.tistory.com/6 [AWS EC2] PuTTy Network error: Connection timed out우선 제 에러의 원인은 명확한데 잠시 자리를 이동하면서 연결 wifi 상태가 바뀌었기 때문입니다. 이 에러가 뜰 경우 restart session 도 먹히지 않고 해서 해결 방법을 찾아봤습니다. 우선 PuTTy에 연dreaminggore00.tistory.com 내가 처음에 인바운드 규칙을 내 ip만 가능하도록 설정해놔서 와이파이가 바뀐 환경에서는 네트워크 연결이 안 됐던 것
-
[백준][Python] 5622번: 다이얼알고리즘/Baekjoon 2022. 7. 29. 14:49
https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net - 처음에 알파벳 다이얼이 3씩 나누어진줄 알고 코드짰었다. 문제를 제대로 읽자 ㅜㅠ - 규칙적으로 나누어진게 아니다보니 처음부터 리스트에 알파벳을 정의하고 시작한다. - 정의된 list를 하나씩 꺼내고 그 안에 있는 알파벳을 또 하나씩 꺼내서 입력된 알파벳이랑 같으면 +3을 해주면 된다. alpabet_list = ['ABC','DEF','GHI','JKL','MNO','PQRS','TUV','WXYZ'] s = input().upper() #대문자로 입력 받음 WA result..
-
[백준][python] 1157번: 단어 공부알고리즘/Baekjoon 2022. 7. 29. 13:57
https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net - 처음에 알파벳 input()으로 받고 그걸 for 문으로 돌려서 소문자로 바꿨는데, 아예 처음부터 소문자로 받아도 되는걸 찾아보고 알았음! - dictionary로 풀어야되나 처음에 생각했는데 출제자가 거기까지 생각하고 풀으라고 낸 것 같지는 않아서 그냥 리스트 두개 만들어서 index로 연결해 줬음 s = input().lower() #mississipi 소문자로 받기 s_set = list(set(s)) # m,i,s,p ..
-
[Spring] 예제에 객체 지향 원리 적용해보기BackEnd/Spring 2022. 7. 27. 21:10
앞서 만든 예제는 client 코드가 구체클래스, 인터페이스 모두에 의존함! 그래서 구체클래스를 변경할 때 클라이언트도 함계 변경해서 DIP를 위반함 역할과 구현을 제대로 나눴다고 보기 어려움 DIP를 위반하지 않도록 인터페이스에만 의존하도록 의존관계를 변경하자 아래처럼 구체적인 RateDiscountPolicy() 정의하는 코드를 없애자 이 상태에서는 null pointer exception 발생함 누군가가 이 클라이언트 orderServiceImpl 객체에 DiscountPolicy의 구현 클래스를 주입시켜줘야함 AppConfig : 애플리케이션의 전체 동작 방식을 구성(config)하기 위해, 구현 객체를 생성하고 연결하는 책임을 가지는 별도의 설정 클래스 1) 구현 객체를 생성함 2) 생성자를 통..
-
[백준][python] 10890 : 알파벳 찾기알고리즘/Baekjoon 2022. 7. 27. 15:50
https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 1. for문 s = list(map(str, input())) alphabet ='abcdefghijklmnopqrstuvwxyz' for i in alphabet: if i in s: print(s.index(i), end=' ') else: print(-1,end=' ') 2. find()로 바로 찾기 s = list(map(str, input())) alphabet ='abcd..
-
[백준][python] 4673번: 셀프 넘버알고리즘/Baekjoon 2022. 7. 27. 15:01
https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 규칙을 알아낼려고 방정식을 계속 세워봤지만 해결이 안됐음.. set 집합형으로 문제를 푸는 방식이 있었다. 전체숫자 1~10000까지 미리 정의하고 생성자 있는 수를 차집합으로 빼는 방법이다. 그리고 각 자리 숫자를 더할때 나눗셈, 나머지 연산자가 아니라 각 자리 숫자를 문자열로 나누어서 그걸 다시 숫자로 바꾸어서 더하는 방식이다. natural_..
-
[Spring] 예제 만들기BackEnd/Spring 2022. 7. 22. 22:44
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com - Java 11 - IDE: IntelliJ * 스프링 없는 순수 자바로만 개발 진행 - 스프링 부트 스타터를 이용하여 스프링 프로젝트 생성 https://start.spring.io/ - 비즈니스 요구사항과 설계 1) 회원 도메인 설..