변수 선언 var 변수명 타입 go에서 변수를 선언할 때는 var 키워드를 사용하고 변수명 타입 순서대로 선언한다. 이렇게 선언을 하면 변수를 X 타입으로 선언한다라고 읽는 점에서 자연스럽다는 장접이 있다. go에서 변수 값을 지정하지 않으면 기본 값으로 0이 지정된다. (문자열도 기본값이 지정되는데 ""이 저장된다) var 변수명1, 변수명2, 변수명3 타입 같은 타입이면 ,(콤마)를 사용하여 여러 개의 변수를 한번에 선언할 수 있다. var ( 변수명1 타입1 변수명2 타입2 변수명3 타입3 ) 한번에 여러 개의 다른 타입의 변수를 선언할 때는 (소괄호)를 사용하여 선언할 수 있다. var v1 = true var v2 = uint16(6) 변수 선언과 동시에 값을 할당하면 타입을 지정하지 않아도 된..
외부에서 본인이 만든 서비스에 접근하기 위해서는 서버가 필요하다. 서버를 구축하는 방법에는 다음과 같이 3가지의 방법이 있다. PC를 24시간 구동 호스팅 서비스 이용 클라우드 서비스 이용 클라우드는 트래픽이 몰란다면 유동적으로 사양을 늘릴 수 있다는 장점이 있다. 클라우드에는 몇 가지 형태가 있다. 1. Infrastructure as a Service (IaaS) 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스 가상머신, 스토리지, 네트워크, 운영체제 등의 IT 인프라를 대여해 주는 서비스 종류: AW의 ES2, S3 2. Plafrom as a Service (PaaS) IaaS를 한번 더 추상화한 서비스 많은 기능이 자동화 되어 있음 종류: AWS의 Beanstalk, Heroku 3. S..
위의 이미지처럼 Gradle -> Tasks -> verification -> test를 클릭하면 전체 테스트를 수행할 수 있다. 시큐리티 적용으로 인하여 인증된 사용자만이 API를 호출할 수 있게 변경되었기 때문에, 모든 테스트가 통과하지 못하고 있다. No qualifying bean of type~ 메시지를 발견할 수 있는데, 소셜 로그인 관련 설정값이 없기 때문에 발생한다. src/main 환경과 src/test 환경은 각자의 환경 구성을 가진다. test에 application.properties가 없으면 main의 설정을 그래도 가져오지만, application-oauth.properties는 가져오지 않는다. 이를 해결하기 위해서 test를 위해서 가짜 설정값으로 application.pro..
전체코드 https://github.com/sdardew/springboot-board GitHub - sdardew/springboot-board: SpringBoot를 사용하여 구현한 게시판 SpringBoot를 사용하여 구현한 게시판. Contribute to sdardew/springboot-board development by creating an account on GitHub. github.com 1. NAVER Developer의 오픈 API에 접속한다 https://developers.naver.com/apps/#/register?api=nvlogin 애플리케이션 - NAVER Developers developers.naver.com 이때 계정 정보 등록을 해야한다. https://dev..
로그인을 한 후 애플리케이션을 재실행하면 로그아웃이 되어있다. 그 이유는 세션이 내장 톰캣의 메모리에 저장되기 때문이다. 세션은 WAS의 메모리에 저장되고 호출되기 때문에, 실행 시 항상 초기화가 된다. 서버가 한 개가 아니라 다수의 서버를 사옹하는 경우 세션 동기화 설정을 해야 한다. 세션 저장소는 다음 3가지 방식 중 하나로 선택된다. 1) WAS 세션 사용 다른 설정이 없으면 기본으로 사용되는 방식 WAS에 저장이 되기 때문에 다수의 WAS를 사용하는 경우 세션 공유 설정이 필요 2) 데이터베이스 사용 ⇐ 사용할 방식 여러 WAS 간 공용 세션 사용 가능 많은 설정이 필요 없음 요청마다 BD IO가 발생하여 성능상 이슈가 발생할 수 있음 로그인 요청이 많이 없는 경우에 사용 3) Redis, Mem..
개발을 할 디렉토리를 생성한다. 개발을 할 디렉토리를 생성했다면 그 아래에 src, pkg, bin 이름으로 3개의 디렉토리를 생성한다. src: Go 소스 파일 pkg: 패키지 파일 (확장자: .a) bin: 실행 파일 package main // package 선언 import "fmt" // 외부 패키지 import func main() { fmt.Println("Hello World!") } src 폴더 아래에 hello 디렉토리를 생성하고 hello.go이름으로 위의 파일을 생성한다. Go 코드는 패키지 선언으로 시작한다. Go 패키지는 모듈과 라이브러리와 유사하게 코드를 구조화하고 재사용하기 위한 단위이다. main 패키지는 프로그램의 시작점 역할을 한다. Go의 기본 라이브러리인 fmt 패키..
Go 언어의 특징 간결하고 유연한 문법 코드가 단순하고 가독성이 높음 상태를 표현하는 타입과 동작을 표한하는 메서드를 분리하여 정의하여 이를 바인딩하여 객체를 표현 ⇒ 느슨한 결합 방식으로 자유롭게 객체 기반의 프로그래밍이 가능 구조체(struct)는 상속을 할 수 없음 구조체가 다른 구조체를 포함하는 임베디드 타입으로 정의 가능 상속 관계로 인하여 프로그램이 복잡해 지는 것을 방지 조합으로 코드를 재사용 병행 프로그래밍 코드를 병렬로 동작하게 하여 멀티 코어의 이점을 활용 가능하게 해줌 메모리를 동기화 하는 것이 아닌 CSP(Communcating Sequential Process) 방식 기반으로, 메시지를 전달하는 방식으로 동기화 동시에 독립적으로 실행되는 흐름의 단위인 고루틴으로 실행하여 동시에 작..
공부를 하는 도중에 직렬화란 말이 많이 나와서 정리해본다. 🌱 직렬화(Serialization)? 메모리에 있는 객체를 바이트 스트림으로 바꾸는 것이다. 🌱 직렬화를 하는 이유? 디스크에 저장을 하거나 네트워크 상으로 데이터를 전달하기 위해서이다. 🌱 역직렬화(Deserialization)? 직렬화와 반대되는 프로세스이다. 바이트 스트림을 메모리의 객체로 변경하는 것이다. 🌱 직렬화와 역직렬화를 하는 방법? XML: 객체를 XML로 변환한다. Java에서는 JAXB를 사용한다. JSON: 객체를 JSON으로 변환한다. Java에서는 GSON을 사용하면 된다. OOP에서 제공해주는 라이브러리를 사용한다. 참고 사이트 https://stackoverflow.com/questions/633402/what-is..
자세한 코드: Github 구글, Github, 네이버 등과 같은 소셜 로그인 기능을 사용하는 경우를 발견할 수 있다. 로그인 기능을 직접 구현하면 다음과 같은 기능이 필요하다. 로그인 시 보안 회원가입 시 본인 인증 비밀번호 찾기 비밀번호 변경 회원정보 변경 OAuth 로그인을 사용하면 위의 기능들을 직접구현 하는 것을 대체할 수 있다는 장점이 있다. Google Cloud Platfrom 설정 Google Cloud Platform에 접속하여 상단 바에 있는 프로젝트 선택 탭을 클릭한다. 오른쪽 위의 새 프로젝트를 클릭한다. 프로젝트 이름을 입력하고 프로젝트를 만든다. 상단바에 왼쪽에 메뉴에 들어가서 API 및 서비스 메뉴로 이동한다. 사용자 인증 정보 메뉴에 들어간 다음, [+ 사용자 인증 정보 만..
- Total
- Today
- Yesterday
- Basic Type
- graphql
- 네이버 2022 공채
- github
- Kotlin In Action
- DGS Framework
- squash merge
- mysql
- string
- 주생성자
- java
- 확장 함수
- git
- postman collection
- Squash and merge
- 1차 인터뷰
- 2차 인터뷰
- 코틀린
- downTo
- postman tests
- hashcode
- pm.expect
- Python
- 코딩테스트
- pm.test
- go 특징
- python3
- Kotlin
- solidity
- postman
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |