성장일기

내가 보려고 정리하는 공부기록

분류 전체보기 156

[Spring] 1. 순수 자바로 설계하기 - 스프링 핵심원리 기본편

인프런 김영한 강사님의 스프링 핵심원리 강의를 듣고 정리하고자 한다. 프로그램을 만들 때, 요구사항을 보고 설계를 하듯이 이 강의도 요구사항을 읽고 설계하여 구현하는 방식으로 수업이 진행된다. 순서는 대략 아래와 같이 진행되었다. 요구사항 보고 대략 구조짜기 자바로 구현하기 Spring 입히기 해당 게시글에서는 순수 자바로 구현하는 것까지만 작성해 둘 예정이다. 1. 요구사항 보고 구조짜기 & 다이어그램 그리기 요구사항을 읽어보고 확정 되지 않은 조건은 인터페이스만 설계해 둔다! 추후에 구현하면 되기 때문에 인터페이스만 잘 설계해도 괜찮다. 수업에서 진행한 설계에서는 회원데이터가 자체DB를 구축할지 외부 시스템을 연동할지 확정이 나지 않은 상황이었기 때문에 회원 저장소를 인터페이스로 설계해두고 자체DB와..

백엔드/스프링 2024.01.29

[Spring] 0. 객체지향설계와 스프링

최근 백엔드 공부를 시작하면서 인프런 김영한 강사님의 스프링 핵심원리 강의를 듣기 시작했다. 그에 대한 내용을 정리해보려고 한다. ✅ Spring spring은 자바 기반의 오픈소스 프레임워크이다. 백엔드 공부를 시작하면서 자바 언어를 선택했으면 Spring과 SpringBoot는 공부해야 한다는 말을 정말 많이 들었는데, 이걸 왜 공부해야할까 ? ✅ 스프링의 핵심 자바 언어의 가장 큰 특징은 객체지향언어 라는 점이다. 그래서 우리는 객체지향언어의 장점을 최대한 살려 프로그래밍을 해야하는데, 이때 객체지향언어의 특징을 잘 살려주는 프레임워크가 스프링이다! 스프링은 좋은 객체지향 애플리케이션을 개발할 수 있도록 도와주는 프레임워크이다. 그럼 여기서 좋은 객체 지향 프로그램은 무엇일까 ? ✅ 좋은 객체 지향..

백엔드/스프링 2024.01.28

[백준] 2751 : 수 정렬하기 (Collections.sort()와 Arrays.sort()) - JAVA

백준 단계별 문제풀이 13단계 (정렬) https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net # 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. # 예제 입력 : 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 5 5 4 3 2 1 출력 1 2 3 4 5 ..

[백준] 10951 : A + B (EOF 처리하기) - JAVA

백준 단계별 문제풀이 3단계 (반복문) https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net # 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. # 예제 입력 1 1 2 3 3 4 9 8 5 2 출력 2 5 7 17 7 # 필요개념 겉보기엔 그냥 입력받아서 덧셈연산을 하면 되는 문제이지만, 이 문제의 특이점은 입력 개수가 명시되어있지 않다는 것이다. while문이나 for문을 쓸 때 반복문을 멈추는 조건이 필요하다. for문을 쓸 땐 입력 개수가 필요하고, while문을 쓸 땐 break 조건이 필요한데, 이 문제에는 그런 ..

[백준] 2908 : 상수 (StringBuffer vs StringBuilder) - JAVA

백준 단계별 문제풀이 5단계 (문자열) https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net # 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 ..

[백준] 9506 : 약수들의 합 (List 활용) - JAVA

백준 단계별 문제풀이 9단계 (약수, 배수와 소수) https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net # 문제 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. # 예제 입력 : (2 < n < 100,000), 입력의 마지막엔 -1이 주어진다. 6 12 28 -1 출력 6 = 1 + 2 +..

[백준] 2501 : 약수 구하기 (StringTokenizer 활용하기) - JAVA

백준 단계별 문제풀이 9단계 (약수, 배수와 소수) https://www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net # 문제 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 6을 예로 들면 6 ÷ 1 = 6 … 0 6 ÷ 2 = 3 … 0 6 ÷ 3 = 2 … 0 6 ÷ 4 = 1 … 2 6 ÷ 5 = 1 … 1 6 ÷ 6 = 1 … 0 그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다. 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로..

[백준] 11005 : 진법 변환2 (Stack활용하기, String으로 변환) - JAVA

백준 단계별 문제풀이 8단계 (일반수학) https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net # 문제 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 # 예제 입력 60466175 36 출력 ZZZZZ # 필요개..

[백준] 2563 : 색종이 (Arrays.fill() 주의점) - JAVA

백준 단계별 문제풀이 7단계 (이차원 배열) https://www.acmicpc.net/problem/2563 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net # 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 ..

[백준] 10789 : 세로읽기 (이차원배열) - JAVA

백준 단계별 문제풀이 7단계 (이차원배열) https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net # 문제 아직 글을 모르는 영석이가 벽에 걸린 칠판에 자석이 붙어있는 글자들을 붙이는 장난감을 가지고 놀고 있다. 이 장난감에 있는 글자들은 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’이다. 영석이는 칠판에 글자들을 수평으로 일렬로 붙여서 단어를 만든다. 다시 그 아래쪽에 글자들을 붙여서 또 다른 단어를 ..

728x90