[GO] 개념
·
GO
최근 2021 Stack Overflow Developer Survey - Most wanted(82,914명이 응답) 조사에서 Go가 개발자들이 원하는 기술순위 4위를 차지했음, 많이는 들어봤지만 이유가 무엇일까? (참고로 1위는 파이썬 2위는 타입스크립트) Golang Go는 2009년 구글의 로버트 그리즈머, 홉 파이크, 켄 톰슨이 개발한 프로그래밍 언어로 빠른 성능, 안정성, 편의성, 쉬운 프로그래밍을 목표로 한 범용 프로그래밍 언어 Golang 특징 안정성, 정적 타입 / 강 타입 컴파일 언어, 빠른속도 (자바보다 빠름 / Go가 2.10secs, 자바 3.07secs) 가비지 컬렉션 지원 병행성 (고루틴을 통해 쓰레드를 생성해서 실행) 모듈화 및 패키지 Learning Curver가 낮음 Go..
[ALGORITHM] 다익스트라 알고리즘
·
ALGORITHM & DATA STRUCTURE
최단 경로 문제 두 노드를 잇는 가장 짧은 경로를 찾는 문제 가중치 그래프(Weighted Graph)에서 간선(Edge)의 가중치 합이 최소가 되도록 하는 경로를 찾는 것이 목적 최단 경로 문제 종류 단일 출발 최단 경로 문제 : 그래프 내의 특정 노드 u에서 출발하여, 그래프 내의 모든 다른 노드에 도착하는 가장 짧은 경로를 찾는 문제 단일 도착 최단 경로 문제 : 모든 노드들로 부터 출발해서, 그래프 내의 특정 노드 u로 도착하는 가장 짧은 경로를 찾는 문제 단일 쌍 최단 경로 문제 : 주어진 노드 u와 v간의 최단경로를 찾는 문제 전체 쌍 최단 경로 : 그래프 내의 모든 노드 쌍 사이에 대한 최단 경로를 찾는 문제 다익스트라 알고리즘 (최단경로 알고리즘) 다익스트라 알고리즘은 단일 출발 최단 경로..
[SPRING] Transaction Propagation
·
SPRING
스플링에서는 트랜잭션 처리를 지원하는데, @Transactional 어노테이션을 통하여 선언적 트랜잭션 처리 방식을 지원함, 해당 어노테이션의 옵션엔 propagation이라는 것이 있는데 해당 옵션은 트랜잭션 전파 방식을 설정하게 해줌 Transaction Propagation (트랜잭션 전파옵션) 트랜잭션 동작 도중 다른 트랜잭션을 호출하는 상황에서 선택할 수 있는 옵션 트랜잭션을 시작하거나 기존 트랜잭션에 참여하는 방법에 대해 결정하는 속성을 지정하는 옵션 (트랜잭션 흐름을 컨트롤 하는 옵션) Transaction Propagation 종류 REQUIRED (default) 이미 시작된 트랜잭션이 있으면 참여하고 없으면 새로 시작 REQUIRES_NEW 항상 새로운 트랜잭션으로 시작, 진행중인 트랜..
[ALGORITHM] 순차탐색 / 이진탐색
·
ALGORITHM & DATA STRUCTURE
순차탐색 (Sequential Search) 탐색은 여러 데이터 중에서 원하는 데이터를 찾아내는 것을 의미 데이터가 담겨있는 리스트를 앞에서부터 하나씩 비교해서 원하는 데이터를 찾는 방법 순차적으로 탐색하기 때문에 최악의 경우 리스트 길이가 n일 경우, n번 비교해야해서 시간복잡도가 O(n) 이진탐색 (Binary Search) 탐색할 자료를 둘로 나누어 해당 데이터가 있을만한 곳을 탐색하는 방법 (대상 리스트가 정렬이 되어 있어야함) 이진탐색은 분할정복 알고리즘을 활용하여 사용 Divide : 리스트를 두개의 서브 리스트로 나눔 Conquer : 검색대상 > 중간값이면, 뒷 부분 서브리스트에서 검색대상 찾음, 검색대상 < 중간값이면, 앞 부분 서브리스트에서 찾음 n개의 리스트를 매번 2로 나누어 1이 ..
[ALGORITHM] 재귀 호출
·
ALGORITHM & DATA STRUCTURE
재귀 호출 함수 안에서 동일한 함수를 호출하는 방법 여러 알고리즘 작성시 사용됨 재귀 호출은 스택의 전형적인 예 (호출함수가 내부적으로 스택처럼 관리됨) 재귀 호출은 중단하기 위한 종료조건문이 필수 재귀 호출 특징 코드가 간결함 무한 재귀호출의 위험성 (종료조건 실수할 경우), 성능상의 문제 재귀 호출 대표적인 예시 (팩토리얼) public int factorial(int n) { if (n == 1) { return 1; } return n * factorial(n-1); } 규칙 : n! = n x (n - 1)!, f(1) = 1 factorial(n)은 n - 1 번의 factorial() 함수를 호출하여, 곱셉을 함 (n - 1번 반복문을 호출한 것과 동일한 형태) factorial() 함수를 ..
[ALGORITHM] 백트래킹
·
ALGORITHM & DATA STRUCTURE
백트래킹 (Backtracking) 제약 조건 만족 문제에서 해를 찾기 위한 전략 해를 찾기 위하여, 후보군 제약조건을 점진적으로 체크하다가, 해당 후보군이 제약 조건을 만족할 수 없다고 판단되는 즉시 Backtrack(다시는 해당 후보군을 체크하지 않을 것을 표기)하고, 바로 다른 후보군으로 넘어가, 최적의 해를 찾는 방법 실제 구현시, 고려할 수 있는 모둔 경우의 수를 상태공간트리(State Space Tree)를 통하여 표현 각 후보군은 DFS로 확인하며, 상태공간 트리를 탐색하면서, 제약이 맞지 않으면 후보가 될만한 곳으로 넘어가서 바로 탐색 상태공간트리 (State Space Tree) 문제 해결 과정의 중간 상태를 각각의 노드로 나타낸 트리 상태공간트리 탐색 기법 Promising : 해당 루..
[GO] is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt 발생시 처리
·
GO
go mod init "패키지명" 실행하면 해결됨
[GO] "fmt" imported but not usedcompilerUnusedImport
·
GO
"fmt" imported but not usedcompilerUnusedImport 발생시 방법 import "fmt" -> import _"fmt" 로 사용해야함 https://golang.org/doc/faq#unused_variables_and_imports 참고
[GO] 윈도우 설치
·
GO
1. https://golang.org/ The Go Programming Language Download Go Binary distributions available for Linux, macOS, Windows, and more. // You can edit this code! // Click here and start typing. package main import "fmt" func main() { fmt.Println("Hello, 世界") } Hello, World! Conway's Game of Life Fibonacci golang.org 2. Download Go 클릭 3. 환경에 맞는 파일 다운로드 후 설치 4. 정상설치 확인