전체 글
-
자리수 구하기 - 자료구조와 함께 배우는 알고리즘 입문(자바)컴퓨터 기초/알고리즘&자료구조 2021. 4. 13. 14:44
해당 포스팅은 "자료 구조와 함께 배우는 알고리즘 입문"이라는 책을 바탕으로 공부한 내용임. 양의 정수 자리수 구하기 위와 같이 메서드에 매개변수로 특정 숫자를 입력하면 해당 숫자의 자리수를 반환하는 문제다. 최대값, 최소값, 중간값 구하기 - 자료구조와 함께 배우는 알고리즘 입문 해당 포스팅은 "자료 구조와 함께 배우는 알고리즘 입문"이라는 책을 바탕으로 공부한 내용임. 여러 변수의 값 중 최대값 구하기 예를 들어서 여러 개의 변수가 있을 때 그 중에서 가장 큰 값을 sgcomputer.tistory.com 이전 세 개의 정수 중 가운데 값 구하는 문제처럼 사람이 보면 알기 쉽다. 근데 컴퓨터한테 해당 작업을 시킬 때는 좀 더 번거롭게 처리해줘야 한다. 우선 나는 이 문제를 보고 사람은 왜 이걸 보고 ..
-
최대값, 최소값, 중간값 구하기 - 자료구조와 함께 배우는 알고리즘 입문(자바)컴퓨터 기초/알고리즘&자료구조 2021. 4. 12. 10:40
해당 포스팅은 "자료 구조와 함께 배우는 알고리즘 입문"이라는 책을 바탕으로 공부한 내용임. 여러 변수의 값 중 최대값 구하기 예를 들어서 여러 개의 변수가 있을 때 그 중에서 가장 큰 값을 구하는 방법은 무엇일까? 아마 이건 따로 알고리즘을 접하지 않아도 어려운 문제는 아닐 것이다. 그냥 순차적으로 비교해나가면 된다. public static int max(int a, int b, int c, int d){ int max = a; // 변수 max를 생성해서 a의 값을 대입 if(b>max) max = b; // max와 b를 비교해서 b가 크다면 max에 b를 대입 if(c>max) max = c; // max와 c를 비교해서 c가 크다면 max에 c를 대입 if(d>max) max = d; // m..
-
알고리즘이란? - 자료구조와 함께 배우는 알고리즘 입문(자바)컴퓨터 기초/알고리즘&자료구조 2021. 4. 12. 09:24
해당 포스팅은 "자료 구조와 함께 배우는 알고리즘 입문"이라는 책을 바탕으로 공부한 내용임. 알고리즘이란? 문제를 해결하기 위한 것으로, 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이뤄진 집합. 알고리즘의 조건은 다음과 같다. - 입력이 가능: 어떤 조건의 수를 받아서 처리할 수 있어야 하기 때문이다. - 출력이 가능: 알고리즘은 문제 해결에 따른 결과물을 도출해야한다. - 명확성: 알고리즘은 각 단계가 명확하고 애매하지 않아야 한다. - 유한성: 알고리즘은 유한한 계산 단계를 거쳐야 한다. 간단히 말하면 명확한 계산 과정을 거친 일종의 문제 풀이를 위한 방법이라고 할 수 있을 것이다.
-
3. 스프링부트와 AWS - 테스트 코드 작성해보기실습/AWS 2021. 4. 8. 12:48
우리가 보통 코딩을 처음 배울 때는 직접 눈으로 확인할 수 있는 동작 구현을 해본다. 이러한 방법은 아주 간단한 구조의 코드나 개인 프로젝트를 할 때는 유용하다. 예를 들어 연습삼아 10줄도 안되는 코드를 실행하는데 테스트를 하는건 오히려 낭비에 가깝다. 하지만 프로젝트의 규모가 커지고 실제로 운용 중인 코드를 다뤄야 할 때는 이야기가 다르다. 매번 프로젝트를 수정할 때마다 눈으로 확인하는 일은 수정할 것도 많고 의외로 시간도 많이든다. 이에 테스트 코드를 작성하는 습관을 들이는 것은 굉장히 중요하다. 다만 해당 실습에서는 해당 파트에서만 테스트 코드에 대해 설명하고 그 뒤 테스트 부분은 가능하면 쓰겠지만...부득이하게 길어지면 생략할 수도 있다. 아무래도 내가 직접 책 쓰는 것도 아니다보니 너무 길어질..
-
2. 스프링부트와 AWS - 인텔리제이로 깃허브 연동하기실습/AWS 2021. 4. 8. 10:58
해당 파트에선 인텔리제이로 깃허브 연동하는 것을 실습할 예정. 해당 실습을 위해선 깃허브 계정이 생성되어있어야 한다. 1. Github 로그인 및 원격 저장소 생성 깃허브에 계정을 만들었다면 이제 인텔리제이로 돌아온다. 인텔리제이에서 Navigate - Search EveryWhere를 눌러서 검색창을 띄운다. 혹은 Ctrl + Shift + A를 누르면 검색창이 뜬다. 검색창이 뜨면 Share Project on GitHub를 입력하고 엔터를 쳐준다. 원래는 로그인 화면이 뜰 것이다. 나는 이미 연동까지 이 전에 해둔 상태라 바로 원격 저장소에 Repository추가 화면이 떴다. 해당 화면에서 Share를 눌러준다. Share를 눌러주면 연동된 깃허브 계정에 프로젝트와 동일한 이름의 Repositor..
-
1. 스프링부트와 AWS - 프로젝트 시작과 세팅실습/AWS 2021. 4. 8. 10:23
스프링부트를 이용해 게시판을 만들고 AWS로 웹 서비스를 구현하는 것 연습. 더 나아가 서비스 무중단 상태에서 배포까지 진행할 예정. 책 스프링 부트와 AWS로 혼자 구현하는 웹 서비스를 기반으로 실습을 진행할 예정임. Gradle 프로젝트로 진행할 예정임. 1. 프로젝트 시작하기 New Project를 눌러서 위와 같이 Gradle - Java를 선택함. GroupId와 ArtifactID를 입력하고 Finish를 선택함. 2. 프로젝트 폴더 설명 - src/main/java: 해당 폴더에는 자바로 작성한 소스코드 - src/main/resources: 해당 폴더에는 자바스크립트, HTML 파일 같은 파일들 - build.gradle: 의존성 관련 설정 및 다양한 설정에 관한 파일 - gradlew: ..
-
스프링 DI, IOC란?백엔드/스프링 2021. 3. 2. 20:29
스프링에서 꼭 알고 넘어가야하는 개념들이 있다. 그 중 가장 기본이 되는 것이 바로 다음과 같은 두 요소다. 의존성 주입: DI (Dependency Injection) 제어반전: IOC (Inversion of Control) 우선 아래와 같은 예시를 보자. DI, IOC의 필요성 예를 들어 위와 같은 파일을 가진 스프링 프로젝트가 있다고 가정해보자. 해당 프로젝트는 어떤 객체를 만드냐에 따라 자기 소개를 다르게 하는 기능을 한다. 위 코드는 메인 클래스 실행 코드다. 예를 들어 위와 같이 Police 객체를 만들고 메인 클래스를 실행하면 오른쪽과 같은 메시지가 뜬다. 만약 객체를 Student로 바꿔서 만들고 메인 클래스를 실행하면 오른쪽과 같은 메시지가 뜬다. 일반적으로 볼 수 있는 코드고 사용법도..