서문Java Spring을 공부하다가 annotation이라는 개념을 본적이 없어서 생소하였다. 기존에 다른 언어에서는 보기 힘들던 개념이라서 annotation에 관하여 정리했다.Annotation이란?@Annotation이란? : 코드에 추가적인 메타데이터 제공하기 위한 도구주석의 역할 + 컴파일러 힌트 + 런타임 중에 특정 동작 수행 + 의존성처음에는 단순 주석인가? 했는데 그렇다고 하기에는 슬래쉬 2개로 주석을 정의하기도 하고 annotation을 잘못쓰면 IDE에서 컴파일 경고가 뜨기도 했다. 단순 주석이 아니라 컴파일러와 소통을 하는 역할을 하고 있었다.Java의 annotation자바에서 기본으로 제공하는 annotation어노테이션설명@Override메서드가 부모 클래스나 인터페이스의 메서..
분류 전체보기
1. Brute force2. Divide and conquer3. Decrease and conquer4. Transform and conquer5. Greedy Method6. Dynamic Programming7. Backtracking8. Branch and Bound여기서는 Transform and conquer 에 대해 다룬다.Transform and Conquer란문제를 해결하기 위해서 풀기 쉬운 형태로 바꾼다. 그런 후 그 새로운 문제를 푸는 방식이다. Transform and conquer 예시문제 요소를 어떻게 바꾸는 지에 따라 3가지로 분류 할 수 있다.Simpler instance : 더 간단한 인스턴스로 변형 PresortingGaussian EliminationAnother r..
서문일반적으로 객체지향을 설명할때, 붕어빵이나 학생들로 비유하는데 , 이것이 퍽 와닿지가 않았다. 그래서 게임 LOL로 객체지향을 설명하고자 한다. 각 챔피언들: 클래스롤에서 챔피언은 객체다. 하지만 롤에 등장하는 챔피언은 각각 100종류가 넘는다. 이 모든 챔피언을 하나하나 다 작성하려면 너무 복잡하고 귀찮을 것이다. 그래서 우리는 공통적인 특성을 클래스로 묶어서 재사용할 수 있다.•모든 챔피언들은 공통적으로 공격력, 주문력, 방어력, 이동속도 등의 데이터를 가지고 있습니다. •또한, 평타로 공격한다., 스킬을 쓴다., 이동한다, 사망하면 못움직인다. 등의 메소드도 가집니다.이런 공통적인 값들과 행동을 공유하니 클래스에서 각각 데이터와 메소드로 정의해놓고 쓸 수 있다.챔피언: 추상 클래스'챔피언'이라..
서문GCA 자격증 취득을 위해 들은 강의 내용 요약이다. 섹션 5의 내용을 담고 있다. Gcloud - Gcloud는 구글 클라우드 리소스의 CLI이다. - 대부분의 GCP 서비스는 이를 통해 해결할 수 있다. Compute Engine Virtual Machines, Managed Instance Groups, Databases, 리소스 CRUD, 배포 등 - GCP와 다른 서비스로 처리하는 CLI 툴들 - Cloud storage: gstuil - Cloud Bigquery: bq - Cloud Bigtable: cbt - kubernetes - kubectl- 이런 Gcloud를 쓰기 위해서 SDK를 사이트에서 별도로 설치할 수도 있으나(파이썬 필요!) 그..
1. Brute force2. Divide and conquer3. Decrease and conquer4. Transform and conquer5. Greedy Method6. Dynamic Programming7. Backtracking8. Branch and Bound여기서는 Decrease and conquer에 대해 다룬다.Decrease and Conquer란주어진 문제를 같지만 계산을 작게 만들어서 해결하는 방식이다. 분할정복과의 차이는, 분할정복은 작게 쪼갠 후 다시 통합하는 과정이 있지만, Decrease는 작게 쪼개서 없애버린 부분을 다시 합치지 않는다는 차이가 있다. 그래서 여기서는 '통합' 대신 '확장'이라는 말을 쓴다. Greedy나 DP처럼 특정 알고리즘이라기보다는 정의역을 ..
여기서는 8가지 알고리즘 중 Divide and conquer에 대해 다룬다. 1. Brute force 2. Divide and conquer 3. Decrease and conquer 4. Transform and conquer 5. Greedy Method 6. Dynamic Programming 7. Backtracking 8. Branch and Bound Divide and conquer란분할 정복이라 불리는 알고리즘이다. 주어진 문제의 입력을 분할하여 최소 단위로 나눈다. 그리고 이렇게 최소단위로 나눈 부분문제에 대한 부분해를 구하고, 이를 취합한다. 총 3가지 분할 -> 정복 -> 통합 3가지의 과정을 거치는 것이다. 이렇게 큰 문제를 작은 문제로 쪼개어 접근하는 방식을 하향식 top-do..
앞으로 예제와 함께 알고리즘 수업에서 배운 내용들을 요약하여 올릴 것이다.총 올릴 알고리즘 분류는 아래 8가지이다.1. Brute force 2. Divide and conquer 3. Decrease and conquer 4. Transform and conquer 5. Greedy Method 6. Dynamic Programming 7. Backtracking 8. Branch and Bound여기서는 Brute Force에 대해 다룬다.Brute Force란될 때까지 다 해본다는 알고리즘이다. 문제 해결을 위해 모든 경우의 수를 찾을 때까지 반복하는 방법이다. 실패하는 경우는 없으나 컴퓨팅 자원이 다른 알고리즘에 비해서 심각하게 낭비된다. 가장 단순하고 직관적이다. Brute Force 예시Sel..
서문GCA 자격증 취득을 위해 들은 강의 내용 요약이다. 섹션 4의 내용을 담고 있다.드는 비용 줄이기비용 줄이는 법: - 지속적인 할인 사용하기: 사용량에 따라 할인율이 올라간다. 자동적으로 적용됨- commit된 할인: 예측가능한 작업에 적용하는 할인으로 1년에서 3년 작업할때 70%할인된다. 할인율이 위의 지속할인보다 더 좋아서 1년에서 3년 사용할거라면 commited discounts를 요청하는 게 낫다. 이는 UI에서 comiited discount를 따로 요청해서 할 수 있다. - 위의 두 할인 모두 쿠버네티스와 구글 compute 에는 잘 할인이 적용되나 E2나 A2, VM으로 만들어진 앱 엔진이나 유동적인 데이터 흐름 같은 형식에는 적용안된다.- preeemitble(미리 설정 가능한..