안녕하세요🖐 오늘은 객체지향 핵심에 대하여 포스팅을 해보겠습니다. 변화에 적응하는 소프트웨어의 특징은 무엇일까요? 저는 이 질문에 대하여 고민을 해보았는데 마땅히 떠오르는게 확장성? 정도 였습니다. 정답은 바로 유연성 확장성 유지 보수성 이 3가지가 충족이 된다면 변화에 적응하는 소프트웨어의 특징입니다. 그러면 이 3가지를 충족시키기 위해서 중요하게 관리해야하는 것이 있다고 합니다 바로 '의존' 입니다. 의존이란? 어떠한 일을 자신의 힘으로 하지 못하고 다른 어떤 것의 도움을 받아 의지하는 것 의존은 코드에서는 어떻게 표현될까? 객체 참조에 의한 관계 메서드 리턴타입이나 파라미터로서의 의존관계 상속에 의한 의존 관계 구현에 의하 의존 관계 등 여러가지가 있을 것 입니다. 1) 객체 참조에 의한 연관 관계..
안녕하세요🖐 오늘은 제가 토이프로젝트 시작에 앞서, 어떻게 패키지를 구성하고, 파일을 관리할지 고민을 하던 중에 스프링 계층 구조에 대해서 알게되어서 공부하게 되었습니다. 그 내용을 포스팅 해보겠습니다. 저는 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 라는 책을 보며, 스프링 계층구조에 대하여 자세히 알게되었습니다. 위 사진이 대표적인 스프링의 계층 구조라고 합니다. 각각의 계층은 계층마다 독립적으로 분리하여 구현하는 것이 가능해야하고, 각 계층에서 담당해야 할 기능들이 있다. Web Layer(= Presentation Layer) 우리가 흔히 사용하는 Controller와 View 영역입니다. 스프링을 사용하면서 MVC패턴을 들어보셨을 것이라고 생각합니다. 그 중에서 View와 Controlle..
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 180611 62158 44997 33.907% 문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 ..
시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 209846 112078 92273 53.161% 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다..
안녕하세요🖐 제가 Springboot + JPA 공부를 하다가 궁금한 점을 포스팅 해보겠습니다. 저는 Dto를 생성할 때 항상 기본 자료형으로 선언을 했습니다 public class DtoA { private long id; private String name; private int age; private String addr; } 이런식으로 Dto를 구성하여도 크게 문제는 없었습니다. 왜냐하면 평소에 ORM은 Mybatis를 위주로 프로젝트를 진행하였고, 대부분 Mybatis를 활용했기 때문 입니다. 실제로 위 필드를 기본자료형으로 해서 생긴 문제 또한 없었습니다.. 그러나 현재 트렌드인 JPA를 공부 중에 모든 Dto 구성 자료형을 기본 타입이 아닌 래퍼 타입으로 구성을 합니다. 왜 그런지 궁금해졌고..
1 초 (추가 시간 없음) 512 MB 114351 75419 52026 64.454% 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 예제 입력 1 3 4 7 10 예제 출력 1 7 44 274 풀이✔ 1️⃣ 문제 분석하..
안녕하세요🖐 오늘은 스프링부트에서 의존성 주입에 대하여 알아볼 것 입니다. 스프링에서 중요한 개념인 Spring Core 관련된 내용은 꼭 알고서 개발을 시작해야 합니다. 대표적으로 POJO, AOP, DI 등 중요 개념들이 있습니다. 그 중에서 오늘은 DI에 대하여 알아보겠습니다. 의존성 주입은 스프링 을 사용하는 백엔드 개발자라고 하면은 개발시 자주 사용하고 있을 것 입니다. 저도 개발을 하면서 객체에 의존성 주입을 하는 상황이 자주 있습니다. 항상 궁금했습니다. 어떻게 이 방식으로 Bean에 의존성이 주입이 되고, 내가 원하는 객체에서 메소드를 사용하고 또 어떠한 방법들이 있을까? 그래서 이번 기회에 의존성주입(Dependency Injection) 에 대하여 자세하게 알아보았습니다. 모든 글은 W..
안녕하세요🖐 오늘은 제가 최근에 정독했던 혼자 공부하는 컴퓨터 구조 + 운영체제 책에 대한 리뷰를 작성해보려고 합니다. https://www.yes24.com/Product/Goods/111378840 혼자 공부하는 컴퓨터 구조+운영체제 - 예스24혼자 해도 충분합니다! 1:1 과외하듯 배우는 IT 지식 입문서이 책은 독학으로 컴퓨터 구조와 운영체제를 배우는 입문자가 ‘꼭 필요한 내용을 제대로 학습’할 수 있도록 구성했다. 뭘 모르는지www.yes24.com 위 책은 저는 e-book으로 구매해서 읽었습니다. 위 책을 추천하는 이유는 "입문자 기준으로" 책을 작성해 주셨기 때문입니다. 비전공자 분들이 읽기에 완전 좋은 내용을 책이라고 생각합니다. 운영체제 ~ 컴퓨터 구조까지해서 전반적인 흐름을 다 알..
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 263704 77331 54397 27.358% 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 풀이✔ 1️⃣ 문제 분석하기 M이상 N이하의 소수를 출력하는 프로그램을 작성 해야함 소수가 무엇인지를 알아야함 소수란, 나누었을 때 몫이 자신 숫자와 1만 있는 것을 의미함. 2️⃣ 요구 조건 구현하기 Bufferedreader 생성 StringTokeinzer 생성 int N, int M = S..
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율2 초128 MB74708353502958747.045%문제N! 에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)출력첫째 줄에 구한 0의 개수를 출력한다.풀이✔1️⃣ 문제 분석하기N! 에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때 까지 0의 개수를 구하는 프로그램을 작성해야 함.계산된 팩토리얼의 뒤에서부터 한 자리씩 확인합니다.0이 아닌 숫자가 나올 때까지 0의 개수를 세어줍니다.예를들어 10! ⇒ 3688800 이면은→ 0의 개수는 2개이다.팩토리얼의 값에서 0의 개수를 세는 로직을 짜는게 방법!2️⃣ 요구 조건 구현하기첫째 줄에 N이 주어짐N에 대한..