전체 글 75

파이썬의 패턴 매칭: 새로운 세계를 열다

파이썬은 그의 단순한 문법과 강력한 기능으로 사랑받는 프로그래밍 언어입니다. 그 중 하나인 '패턴 매칭'에 대해 깊게 다뤄 보겠습니다. 이 기능은 파이썬 3.10에서 새롭게 도입되었고, 데이터를 특정 패턴으로 비교하고 분석하는 강력한 도구입니다. 패턴 매칭이란? 패턴 매칭은 일반적으로 함수형 프로그래밍에서 주로 볼 수 있는 기능으로, 값이 특정 형태를 가지고 있는지 판단하고 그에 따라 코드를 실행하는 방식입니다. 이는 특정 데이터에 따라 다양한 동작을 하는 코드를 작성하는 데 매우 유용합니다. 파이썬에서의 패턴 매칭은 match 문과 case 문으로 이루어집니다. def process(data): match data: case []: print("Empty list") case [x]: print(f"O..

카테고리 없음 2023.06.19

JavaScript ES6: `let`과 `const` 이해하기

JavaScript는 ES6 (ECMAScript 2015)에서 let과 const라는 두 가지 새로운 변수 선언 키워드를 도입했습니다. 이들은 기존의 var 키워드를 보완하고, 변수의 스코프와 재할당 가능성에 대한 더 많은 제어를 제공합니다. let 블록 스코프 변수 선언 let 키워드는 블록 스코프(block scope) 변수를 선언합니다. 블록 스코프란, 변수가 선언된 블록 {} 내에서만 변수가 유효하다는 것을 의미합니다. let x = 10; if (true) { let x = 20; console.log(x); // 20 } console.log(x); // 10 위 코드에서, 두 번째 console.log(x)는 블록 외부의 x를 참조하므로, 결과는 10입니다. let으로 선언된 변수는 재할당..

카테고리 없음 2023.06.15

코틀린의 var와 val 키워드: 가변성과 불변성의 중요성

코틀린은 현대적인 프로그래밍 언어로서 가변성과 불변성의 개념을 강조합니다. var와 val은 코틀린에서 변수를 선언하는 데 사용되는 키워드입니다. 이번 글에서는 var와 val의 차이점을 설명하고, 왜 이렇게 키워드가 나눠졌는지에 대해 알아보겠습니다. var 키워드: 가변 변수 var 키워드는 가변 변수를 선언할 때 사용됩니다. 즉, 한 번 할당된 값은 변경할 수 있습니다. 예를 들어, 다음과 같이 var 키워드를 사용하여 변수를 선언할 수 있습니다: var age = 25 age = 26 // 변수 값 변경 가능 var 키워드로 선언된 변수는 프로그램 실행 도중 값이 변경될 수 있으므로 유연성과 다양한 상황에 대응할 수 있는 장점이 있습니다. 그러나 이는 변수 값이 어디에서든 변경될 수 있다는 의미이기..

카테고리 없음 2023.06.14

2023년 웹개발 트렌드: AI 챗봇의 미래

안녕하세요! 2023년을 맞아 웹개발의 트렌드 중 하나인 AI 챗봇에 대해 알아보고자 합니다. AI 챗봇은 인공지능 기술을 활용하여 자연어 처리, 기계 학습, 정보 검색 등의 기술을 통해 사용자와 대화하고 응답하는 가상의 채팅 상담원입니다. 이번 글에서는 2023년에 AI 챗봇이 어떻게 발전하고 어떤 영향을 미칠지 살펴보겠습니다. AI 챗봇의 발전과 혁신 2023년에는 AI 챗봇이 더욱 정교해지며 사용자의 요구를 더욱 정확하게 파악하고 대응할 수 있게 될 것으로 예상됩니다. 이를 위해 머신러닝, 자연어 처리, 정보 검색 등의 기술이 더욱 발전함에 따라 AI 챗봇은 더욱 높은 수준의 이해력과 응답 능력을 갖출 것입니다. AI 챗봇의 적용 분야 AI 챗봇은 다양한 산업과 분야에서 활용될 수 있습니다. 예를 ..

카테고리 없음 2023.06.13

map()과 flatMap()을 알고 쓰자

자바로 개발하면서 map과 flatMap을 종종 사용하였는고 map과 flatMap에 대해 이렇게 생각하고 있었다. map은 컬렉션의 반복을 위해 사용하는 것이고 flatMap은 2차원을 1차원으로 만드는 것이지 그러나 이것은 대단히 잘못 알고 있었던 것이었다. 결론부터 말하자면 Optional 클래스의 map과 flatMap 메서드는 다음과 같은 역할을 한다. // map을 이용하여 Optional -> Optional로 변경 Optional stringOne = Optional.of("1"); Optional integerOne = stringOne.map(s -> Integer.parseInt(s)); // flatMap을 이용하여 Optional -> Optional로 변경 Optional str..

JPA data.sql로 초기화 시 에러 해결방법 Error creating bean with name 'dataSourceScriptDatabaseInitializer'

spring에서 jpa를 사용 시 @Entity 어노테이션을 사용하면 ddl이 자동으로 생성되고(모드 설정 가능) 초기 데이터 생성을 위해 resource 디렉토리 아래 data.sql 파일을 insert 문을 넣어 사용하곤 한다. 이렇게 줄곧 사용해 왔으나 최근에 갑자기 에러를 마주하게 되었고 간신히 해결하게 되어 그 해결 방법을 기록하기로 했다. 스프링 버전이 올라가면서 생긴 문제로 2.4 버전에선 잘 되던 것이 같은 방법으로는 2.5에는 에러가 났다. 먼저 스프링 부트 2.4 버전을 보면 아래와 같다. Member클래스에 @Entity 어노테이션을 사용하여 members 테이블을 자동 생성하게 하였다. 그리고 초기 데이터를 넣기 위해 data.sql에 다음과 같이 insert문을 작성하였다. 실행을..

공부/Spring 2021.08.29

jackson으로 응답 값 직렬화할 때 속성값의 첫 단어가 한 글자인 경우

json형식의 응답으로 dDay라는 키를 반환하다가 문제가 생겨서 이 글을 작성하게 되었다. (아래 코드는 Github에서 확인이 가능하다.) 먼저 반환하려는 객체는 다음과 같다. public class FooDto { private int dDays; public int getDDays() { return dDays; } } 기대하는 응답 값은 다음과 같다. { "dDays": 0 } 하지만 실제로 응답된 값은 이러하다. { "ddays": 0 } 이를 기반으로 테스트 코드를 작성해 보았다. @WebMvcTest public class FooControllerTest { @Autowired private MockMvc mvc; @Test public void jsonSerializeTest() thro..

공부/Spring 2021.06.28

Netlify에 가비아에서 구매한 도메인 연결하기

netlify에서 호스팅을 하고 가비아에서 구매한 도메인을 연결하는 과정을 공유하려고 합니다. 먼저 netlify는 무료로 호스팅이 가능한 사이트입니다. 호스팅 하게 되면 도메인은 {사용자 지정 도메인}. netlify.app으로 됩니다. 그리고 가비아에서는 도메인을 저렴하게 팔고 있습니다 (다만 첫 해만 할인되고 그 뒤로는 할인되지 않음.) 이러한 작업이 필요한 이유는 우리가 웹사이트에 접속하기 위해 url을 입력하지만 실제로는 해당 url에 해당하는 ip를 찾아 이동하는 것입니다. 이러한 도메인을 ip로 변경해 주는 것이 네임 서버입니다. [네임서버 - 생활코딩] 실제 호스팅 되어있는 곳은 netlify이고 외부에서 접속하려는 도메인은 가비아에서 구매한 도메인임으로 기본 적용된 가비아 네임서버에서는 ..

공부/etc 2021.04.19

[번역] 이제 GitHub에서 새로 생성되는 저장소의 기본 브랜치는 main 입니다

이제 새로운 저장소의 기본 브랜치는 main입니다. 기본값을 다르게 설정하는 방법 : 사용자의 경우, https://github.com/settings/repositories 페이지 기관의 주인인 경우, https://github.com/organizations/YOUR-ORGANIZATION/settings/repository-defaults 페이지 기업의 관리자인 경우, https://github.com/enterprises/YOUR-ENTERPRISE/settings/member_privileges 페이지 이전에 저장소 생성시 기본 브랜치를 사용한 경우에는 이 변경에 영향을 받지 않습니다. 저장소가 존재하는 경우 이 변경에 영향을 받지 않습니다. 올해 말, 사용자,조직,기업 계정으로 기존 저장소의 ..

공부/Git 2021.03.01

Spring @Order 로 Bean 순서 정의하기

스프링의 @Order 어노테이션은 컴포넌트나 빈의 로드 순서를 정의할 수 있다. 같은 타입의 빈이 Autowired 될 때 그 순서를 @Order를 이용하여 정의하는 것이다. 예시 코드는 아래와 같다. 오른쪽 테스트 코드를 보면 List 타입을 Autowired 할 때 @Order에 정의된 순서대로 불러오게 된다. @Order를 자세히 보게 되면 값에는 정수형이 들어가고 기본 값은 Ordered.LOWEST_PRECEDENCE이다. Ordered.LOWEST_PRECEDENCE를 보게 되면 아래와 같고 정수의 최댓값을 나타내며 가장 낮은 우선순위를 뜻한다. 가장 우선순위를 높게 하기 위해선 정수형의 최댓값인 Ordered.HIGHEST_PRECEDENCE를 이용하면 된다. @Order의 값이 중복될 경우..

공부/Spring 2021.02.15
728x90
반응형