본문 바로가기

Go

(19)
프로그래머스 2024 KAKAO WINTER INTERNSHIP 도넛과 막대 그래프 package mainimport "fmt"func main() { edges := [][]int{{2, 1}, {2, 5}, {3, 4}, {4, 5}, {5, 6}, {6, 7}, {7, 3}, {3, 8}, {8, 9}, {9, 10}, {10, 11}, {11, 3}} //edges := [][]int{{4, 7}, {1, 12}, {8, 3}, {12, 7}, {4, 2}, {7, 11}, {4, 8}, {9, 6}, {10, 11}, {6, 10}, {3, 5}, {11, 1}, {5, 3}, {11, 9}, {3, 8}} fmt.Println(solution(edges))}func solution(edges [][]int) []int { result := make([]int, 4) edges..
프로그래머스 [PCCP 기출문제] 3번 / 충돌위험 찾기 - golang func main() { points := [][]int{{2, 2}, {2, 3}, {2, 7}, {6, 6}, {5, 2}} routes := [][]int{{2, 3, 4, 5}, {1, 3, 4, 5}} fmt.Println(solution(points, routes))}func solution(points [][]int, routes [][]int) int { // 충돌 횟수 result := 0 // 경과 시간 cnt := 0 // 각각의 초단위 로봇별 지점 확인 key : [로봇넘버] value : 로봇의 좌표 pointsMap := make(map[int][2]int, 0) // [지나간 포인트의 갯수,지금 가고 있는 방향] currentHeadingRoute := make([][2]int..
RSA 공개키와 JWE 를 통한 Message Encryption ( 코나 API ) 코나 Message Encryption 에 따르면 코나에서 사용하는 API Reqeust , Response 를 필요에 따라 암/복호화 하여 통신한다고 한다. 1. 서버 인증서 : KONA PLATE에 요청을 보낼 때 클라이언트는 서버 공개 키를 사용하여Message Payload를 암호화하고 KONA PLATE는 서버 개인 키를 사용하여 Payload를 복호화 합니다. 2. 클라이언트 인증서 : KONA PLATE에서 응답을 받을 때 KONA PLATE는 클라이언트의 공개 키를 사용하여 Payload를 암호화 하고 클라이언트는 서버의 개인 키를 사용하여 복호화 합니다. 클라이언트 인증서를 다운받아보면 아래와 같은 공개키와 개인키를 받게 된다. -----BEGIN PUBLIC KEY----- MIIzMg..
golang gin swagger API annotation FormData Path Query JSON
golang http request query 추가 여러 방법 package main import ( "fmt" "io" "log" "net/http" "net/url" ) func main() { // GET client := &http.Client{} // 1. query 를 host 뒤에 직접 입력 host := "https://api.coinpaprika.com/v1/tickers" query1 := "limit=5" endPoint := fmt.Sprintf("%s?%s", host, query1) req, err := http.NewRequest(http.MethodGet, endPoint, nil) if err != nil { panic(err) } resp1, err := client.Do(req) if err != nil { panic(err) } ..
네이버 클라우드 플랫폼 카카오톡 알림톡 (golang) https://www.ncloud.com/ NAVER CLOUD PLATFORM cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification www.ncloud.com 회원가입 or 로그인 -> 마이페이지 결재 카드 연동 후 마이페이지 -> 인증키 관리 신규 API 인증키 생성 아래의 Simple & Easy Notification Service 에 프로젝트 등록후 ServiceID 발급 https://console.ncloud.com/sens/home 프로젝트 생성하기 클릭 Biz Message 체크후 원하는 프로젝트명과 설명 기입 Biz Message ..
golang 프로토타입패턴(Prototype Pattern with golang) 목적 프로토타입 패턴은 이미 존재하는 객체를 해당 클래스에 의존하지 않고 복사하는 패턴이다. 실세계 유추 실제 세계에서 프로토타입(시제품)이란 용어는 제품의 대량생산을 시작하기 전에 다양한 테스트를 수행하는데 사용된다 하지만 프로토타입은 실제 제품에 참여하지 않는 수동적인 역할을 한다 공업적 프로토타입이 실제로 스스로 복사하는것이 아니기 때문에, 패턴에 더 근접한 유추는 생물학의 세포 유사 분열 과정으로 볼수있다 분열 이후에 개별 세포 쌍이 형성된다. 원본 세포는 프로토타입처럼 행동하고 복사본을 만드는데 능동적인 역할을 가져간다. 문제 가지고 있는 객체의 복사본을 가지고 싶다면, 같은 클래스의 새로운 객체를 만들고 가지고 있는 객체의 값들과 모든 영역들을 복사해야 한다. 하지만 어떤 객체들은 외부로부터 ..
golang 빌더패턴(Builder Pattern) 빌더패턴은 복잡한 객체의 생성을 동일한 절차에서 서로 다른 결과를 만들어 낼수 있는 패턴이다. 자 예를들어 우리가 스타크래프트를 한다고 할때 우리는 종족을 저그,프로토스,테란 중 하나를 선택하는데 이 객체의 생성을 동일한 절차 즉 버튼하나만으로 그걸 구분해낸다. 그리고 그 종족을 고르면 우리는 전혀 다른 종족으로 플레이를 할수 있는것이다. 빌더패턴에서 중요한 Director 클래스가 있는데 이게 게임을 플레이하는 나(Player = Director) 라고 생각하면된다. 내(Director) 가 빌더패턴을 이용해서 종족이라는 빌더(Zerg,Protoss,Terran)를 정의한후 플레이(메서드구현)을 하면 그게 빌드패턴이 되는거다. 이번에도 스타크래프트를 예로 빌더패턴을 구현해보겠다. 위와 같이 빌더 인터페..