일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 11659
- 백준
- vm인스턴스생성
- List.of
- Spring MVC 동작원리
- 코드스테이츠
- 인텔리제이
- 투포인터알고리즘
- 버블정렬
- 스택
- 알고리즘
- GCP
- 클라우드에서 도커 실행하기
- 백준 11659
- MySQL
- 코딩테스트
- String.valueOf()
- 재귀와반복문
- OOP
- Spring Web MVC
- 재귀함수
- 자바
- Spring MVC 구성요소
- 프로그래머스
- java
- 구간합구하기
- 싱글톤패턴
- 성능테스트툴
- 코드스테이츠 백엔드
- Array.asList
- Today
- Total
목록글 전체 보기 (242)
순간을 기록으로

개요 알고리즘 문제를 풀다 보면 반복적인 규칙이 있는 문제가 있습니다. 이런 문제들은 재귀 함수를 이용해서 풀 수도 있고, 반복문을 이용해서 풀 수 있습니다. 대표적인 문제가 팩토리얼 문제입니다. 입력으로 순서가 주어지면 팩토리얼 값을 구하는 방법은 다음과 같이 재귀함수를 이용해서 풀 수 있고 반복문을 이용해서 풀 수 있습니다. 팩토리얼 문제를 푸는 2가지 방법 - 재귀, 반복문 public class Solution { public static int factorialUsingRecursion(int num) {// 재귀 if (num == 0) return 1; else return num * factorialUsingRecursion(num - 1); } public static int factor..

회고 섹션 1에서 가장 기초적인 내용을 배웠다. 지금까지 배운 개념을 키워드로 나열하면 다음과 같다. html css linux git java 기초 OOP 기초 클래스 객체 필드 메서드 생성자 OOP 심화 상속 캡슐화 다형성 추상화 컬렉션 제네릭 컬렉션 프레임워크 내부 클래스 Java 심화 Enum Annotation Lambda Stream JVM 4주라는 짧은 시간 동안 정말 많은 개념을 배웠다. 아직 추가로 풀 수 있는 연습 프로젝트를 풀지 못해서 주말에 남는 시간을 활용하여 프로젝트를 개발해봐야겠다. 잘한 점 완벽하게 모든 학습 내용을 습득하지는 못했지만 어느 정도 내용을 놓치지 않고 잘 따라갔다. 그리고 학습하면서 의식적인 학습을 하려고 노력했다. 단순히 코드를 따라 치기보다는 왜 이것을 사용..

다형성 자바 OOP는 캡슐화, 상속, 다형성, 추상화라는 핵심적인 4가지 특징을 가지고 있습니다. 오늘은 그 중에서 다형성에 대해 알아 보겠습니다. 다형성 영어로는 polymorphism입니다. poly라는 다양,많음의 의미와 morphism 형태라는 뜻이 합쳐 단어 뜻을 유추하자면 '여러가지 형태를 가질 수 있는 성질(능력)'이라고 해석할 수 있습니다. 간단히 일상에서 다형성을 찾아보겠습니다. 위의 이미지를 보면 한 사람이 있습니다. 이 사람은 엄마가 될 수 있고, 직원이 될 수 있으며, 발표자가 될 수 있는 등 필요한 상황에 따라 다양한 역할(형태)를 바꿔 끼울 수 있습니다. 이것을 일상에서의 다형성이라고 볼 수 있습니다. 자바에서 다형성 자바에서 다형성은 다음과 같습니다. 한 타입의 참조변수로 여러..

안녕하세요. 오늘도 저번과 마찬가지로 기술면접을 보는 상황을 가정하고 학습한 개념을 질문으로 만들어 봤습니다. OOP의 4가지 특징은 무엇인가요? 객체지향언어는 다음과 같은 4가지 특징이 있습니다. 상속(Inheritance) 캡슐화(Encapulation) 다형성(Polymorphism) 추상화(Abstraction) OOP의 5가지 설계 원칙은 무엇이 있나요? 객체지향언어에는 SOLID라는 5가지 설계 원칙이 있습니다. Single Responsibility Principle(SRP, 단일책임원칙): 객체는 하나의 책임만 가져야 한다. Open Close Principle(OCP, 개방 폐쇄 원칙): 기능을 추가할 때 기존의 코드 변경하지 않아야 한다. Liskov Substitution Pricip..

안녕하세요. 이번 시간에는 기술 면접을 본다고 가정하고 OOP 개념을 질문을 통해서 잘 알고 있는지 확인해 보겠습니다. 객체지향 프로그래밍(OOP)이란 무엇인가요? 객체 지향 프로그래밍(Object Oriented Programming)의 약어로 프로그램을 명령어의 나열로 보는 시각에서 벗어나 객체들의 집합으로 보는 방법론을 말합니다. 클래스(Class)란 무엇인가요? 클래스는 객체를 생성하기 위한 설계도 입니다. 클래스를 사용해서 같은 구성의 속성(상태)과 행위(기능)를 갖는 객체를 만들 수 있습니다. 객체(Object)는 무엇인가요? 객체는 클래스로 구현한 대상을 말합니다. 인스턴스(Instance)는 무엇인가요? 인스턴스는 메모리에 할당된 객체입니다. 필드(field)란 무엇인가요? 필드는 인스턴스..

안녕하세요. 이번 시간에는 저번에 포스팅했던 GCP에 올려놓은 cpu 바운드 애플리케이션의 성능을 측정해 보겠습니다. 성능을 측정하기 위해 스트레스 테스트 툴인 아틸러리(Artillery)를 사용하겠습니다. 아틸러리를 사용하기 위해서는 우선 nodejs를 설치해야 합니다. 1. NodeJS를 설치하기 혹시 nodejs가 설치되어 있을 수 있으므로 터미널에 node를 입력해봅니다. 만약 버전이 뜬다면 설치가 되어있는 상태입니다. 설치가 되어있지 않으면 구글에 nodejs를 입력하고 LTS버전의 인스톨러를 다운로드하여 설치합니다. 그리고 터미널에서 node -v를 입력하여 버전이 뜨면 설치가 정성적으로 된 상태입니다. 2. 아틸러리 스크립트 폴더를 만들고 VSCode에서 열기 앞으로 작성할 아틸러리 스크립트..

안녕하세요. 이번 시간에는 GCP를 이용하여 메이븐 프로젝트를 배포하는 방법을 배워보겠습니다. 아래의 설명은 저의 프로젝트 명, 저의 깃허브 주소 등을 기준으로 설명되어 있으니 직접 해보신다면 본인의 프로젝트명, 본인 깃허브 등으로 진행해주시면 되겠습니다. 1. 메이븐 프로젝트를 jar파일로 만들기 오른쪽 위 Maven 클릭하기 cpu -> Lifecycle -> deploy 더블 클릭하기 왼쪽 target 디렉토리 안에 .jar 파일이 생성됩니다. 만약 정상적으로 생성이 안된다면 프로젝트를 우클릭해서 reload from disk를 클릭하면 정상적으로 생성됩니다. 2.GCP 인스턴스에서 jar파일을 다운받을 수 있도록 Github에 올리기 로컬에 mkdir deployTest 디렉토리 생성 디렉토리 안..

얕은 복사(Shallow Copy) 객체의 주소값만을 복사하는 것 주소 값이 같으므로 한쪽에서 값을 바꾸면 다른 쪽에서도 값이 바뀐다. 장점 하나의 객체만을 사용하기 때문에 메모리 낭비가 발생하지 않는다. 단점 여러 객체가 하나의 배열을 가리키기 때문에 값 변경할 때 실수가 발생할 수 있다. public class Solution { public static void main(String[] args) { int[] a = {1, 2, 3, 4, 5}; int[] b = a; System.out.println("a의 주소값: " + a); System.out.println("b의 주소값: " + b); } } 깊은 복사(Deep Copy) 객체의 실제값을 새로운 객체를 만들어서 복사하는 것. 주소 값이 ..