본문 바로가기

Back-End (web)50

Intellij에서 Go로 Hello World 출력하기 인텔리제이는 2023.2 버전 Ultimate에서 진행하였습니다. 플러그인 먼저 설치해줍니다. 새로운 프로젝트 생성시 Go 언어 선택하고, 저는 SDK를 따로 설치하지 않아서 GOROOT에서 별도의 SDK를 선택하지 않고 Enable vendoring support automatically를 체크 해줍니다. Add sample code 도 체크해줍시다. 그러면 main.go 에 친절히 Hello, world 를 출력하는 코드를 추가해서 생성해줍니다. 지금은 sdk가 없기 때문에 Setup GOROOT를 클릭해서 sdk를 설정하러 가줍시다. 버전은 자동으로 지정해주는걸로 진행하였습니다. 변경 없이 OK를 눌러줍시다. 그럼 이제 main.go 에 있는 코드를 실행할 수 있습니다. Run을 돌리면 콘솔 창에 .. 2023. 7. 30.
[Spring] Spring Boot 3를 위한 RestDocs, openAPI3 버전 업그레이드 스프링부트 버전 2.x 에 restdocs + openapi3 를 이용하여 요청, 응답값을 테스트한 뒤 문서화를 위한 제너레이션을 하고 있었습니다. 문서 테스트 코드는 동일하게 두고 테스트를 돌리면 위와 같이 java.lang.NoClassDefFoundError: org/springframework/restdocs/operation/QueryStringParser 에러가 발생하였습니다. spring boot 버전업을 했으니 문서화 관련 의존성의 버전들도 짚어볼 필요가 있어보입니다. 스프링부트 3 버전부터는 스프링 프레임워크 6을 사용합니다. spring-restdocs 3.0.0 버전의 dependecy 정보를 보면 스프링 프레임워크의 의존성이 6으로 올라간 것을 확인할 수 있습니다. 따라서, org... 2023. 3. 30.
[Spring] Spring Cloud Config 정리 개요 MSA 아키텍처에서는 환경설정 파일을 외부에서 관리하여 설정이 바뀐 경우 서비스의 수정, 재컴파일 없이 여러 환경에서 이를 적용할 수 있게 해줍니다. 이를 위해 Spring 프레임워크는 Spring Cloud Config를 제공합니다. 기본 세팅 컨피그 서버를 사용하는 경우 구조는 [그림 1]과 같습니다. 컨피그 파일 repository가 존재하며 컨피그 서버는 뜰 때 해당 레포를 바라봅니다. 서비스들은 배포될 때 컨피그 서버에서 배포 시 환경의 환경설정 정보를 가져와서 서버를 띄워줍니다. spring boot actuator 의 refresh endpoint를 이용하여 config file의 변경점이 있다면 서버 재시작을 하지 않고도 미리 명시해둔(@RefreshScope) 컨피그들은 변경된 정보.. 2022. 5. 15.
[Kotlin] Collection - Fold, Reduce 참고 : https://kotlinlang.org/docs/collection-aggregate.html#fold-and-reduce Fold와 Reduce는 컬렉션 요소들의 연산결과를 누적해서 다음 연산에서 사용한다. 차이점은 Reduce는 처음 연산 때 첫번째, 두번째 element를 가져와서 연산을 하는 반면, Fold는 init 인자와 첫번째 element를 가져와서 연산을 한다. val list = listOf(1, 2, 3, 4, 5) list.reduce { prev, ele -> println("$prev, $ele") (prev + ele) } // 1, 2 // 3, 3 // 6, 4 // 10, 5 list.fold(0) { prev, ele -> println("$prev, $ele.. 2022. 1. 16.
PyCharm 입출력 파일 설정 https://withhamit.tistory.com/100 Visual Studio 명령 인수로 입출력 파일 설정 visual studio에서 디버깅시 파일입출력 or 콘솔에서 입출력을 하지않고 입력을 받는 방법. 디버깅 시 긴 입력값을 매번 입력하지 않을 수 있다. 프로젝트에 입력으로 받을 파일과 출력값을 저장할 withhamit.tistory.com c++ 알고리즘 코딩 시 input output을 콘솔로 입력, 출력하지 않고 파일로 입출력하게 설정하는 방법을 포스팅한 적이 있다. 이번엔 python으로 알고리즘 작성 시 사용하는 PyCharm에서 파일로 입출력을 받고 싶을 땐 어떻게 하는지에 대한 내용이다. 알고리즘 작성용 프로젝트를 하나 만든다. main.py엔 코드를 작성할 것이고 input... 2022. 1. 8.
[Kotlin] Collection - associateBy, associateWith, associate AssociateBy collection 요소에 파라미터 함수에서 반환된 값을 키 값, 요소를 value로 하는 map을 반환한다. data class Member( val no: Int, val name: String ) fun main() { val members = listOf( Member(no=10, name="A"), Member(no=20, name="B"), Member(no=30, name="C"), Member(no=40, name="D"), Member(no=50, name="E"), ) val associateMembers = members.associateBy{it.no} println(""" ${associateMembers::class.simpleName} keys : ${as.. 2021. 12. 30.