1. 사전 자료형 사전 자료형이란 키(key)와 값(value)의 쌍을 데이터로 가지는 자료형.그러므로, 인덱스라는 것이 존재하지 않음 리스트나 튜플과 달리 값에 순서가 없음 키-값 쌍을 데이터로 가지기 때문에, 우리가 원하는 변경 불가능한 데이터를 키로 사용할 수 있다. 사전 자료형이 사용되는 대표적인 예시는 사전(Dictionary)이다. 파이썬의 사전 자료형은 내부적으로 해시 테이블을 이용하므로 데이터 검색 및 수정 시 O(1)의 시간 복잡도가 소요된다. # 출력문 : {'사과': 'Apple', '바나나': 'Banana'} data = dict() data['사과'] = 'Apple' data['바나나'] = 'Banana' print(data) 사전 자료형 관련 함수 키 데이터만 뽑아서 리스트..
1. 문자열 자료형 문자열 변수 초기화 시 큰따옴표 “ 혹은 작은따옴표 ‘ 를 이용한다. # 출력문 : Hello World data = 'Hello World' print(data) # 출력문 : Don't you know "Python"? data = "Don't you know \"Python\"? 문자열끼리의 연산도 가능함 # 덧셈을 이용하면 문자열이 더해져 연결됨 # 출력문 : Hello World a = "Hello" b = "World" print(a + " " + b) # 문자열과 양의 정수를 곱할 경우, 문자열이 그 값만큼 여러 번 더해짐 # 출력문 : StringStringString a = "String" print(a * 3) 문자열을 내부적으로 리스트와 같이 처리 가능, 인덱싱과 ..
1. 리스트 자료형 대괄호 [] 안에 원소를 넣어 초기화하며, 쉼표, 로 원소를 구분함 인덱스는 0부터 시작함 a = [1, 2, 3, 4, 5] # 출력값 : 5 print(a[4]) # 빈 리스트 선언 방법 1 a = list() # 빈 리스트 선언 방법 2 a = [] # 리스트의 크기가 N이고, 모든 값이 0인 1차원 리스트 초기화 # 출력값 : [0, 0, 0, 0, 0] n = 5 a = [0] * n print(a) 2. 인덱싱과 슬라이싱 인덱싱 : 인덱스값을 입력하여 리스트의 특정한 원소에 접근하는 것 # 뒤에서 첫 번째 원소 출력, 출력값 : 5 a = [1, 2, 3, 4, 5] print(a[-1]) # 두 번째 원소 값 변경, 출력값 : [1, 3, 3, 4, 5] a[1] = 3 ..
1. 정수형 정수형에는 양의 정수, 음의 정수, 0이 있음. 2. 실수형 소수점 아래의 데이터를 포함하는 수 자료형 파이썬에서는 소수부가 0이거나, 정수부가 0인 소수는 0을 생략하고 작성할 수 있음. # 소수부가 0일 때 0을 생략 (결과값 : 5.0) a = 5. print(a) # 정수부가 0일 때 0을 생략 (결과값 : -0.7) a = -.7 print(a) 지수 표현 방식 실수형 데이터 표현 방식의 한 종류, e 혹은 E를 이용하여 표현한다. e 다음에 오는 수는 10의 지수부를 의미함 # 결과값 : 1000000000.0 a = 1e9 print(a) # 결과값 : 752.5 a = 75.25e1 print(a) # 결과값 : 3.954 a = 3954e-3 print(a) 최단 경로 문제에..
문제점 Junit5를 사용하여 테스트 코드를 작성하던 도중 assertThat과 equalTo를 사용하기 위해 선언을 했으나 아래와 같이 선언할 수 없다는 에러가 발생했다. 이는 적절한 import 문을 선언하지 않았기에 발생하는 에러이다. 그렇다면 어떻게 해야 이러한 에러를 해결할 수 있을까? 해결방안 아래와 같이 해당 import 문을 직접 작성해 주면 쉽게 해결이 된다. import static org.hamcrest.CoreMatchers.equalTo import static org.hamcrest.MatcherAssert.assertThat;
Spring Boot에서 데이터 조회 API를 제작하는 방법은 대표적으로 두 가지가 있다. 1. http://localhost:8080/board?id=1 2. http://localhost:8080/board/id/1 예시로 보다시피, 둘 다 같은 데이터를 받아오지만 전반적으로 봤을 때 가장 큰 차이점은 쿼리스트링의 사용 여부라고 볼 수 있다. 아래부터는 둘의 차이를 좀 더 자세하게 분석을 해보도록 하겠다. @RequestParam 이란? @RequestParam의 파라미터 종류는 4가지이다. defaultValue : 값을 설정하지 않았을 때 설정할 기본값 name : 바인딩할 파라미터의 이름 value : name의 별칭 required : 필수 값 사용 여부 설정 (무조건 설정을 해주어야 함) @..
한이음 공모전에 참여하게 된 계기 대학교 3학년 1학기를 마치고 휴학 생활을 시작했다. 휴학 생활을 하면서 전공 관련 다양한 프로젝트를 경험해 보고 싶었다. 그러다가 마침 대학교 선배로부터 같이 한이음 공모전 참여를 해보는 게 어떨 것 같냐는 좋은 제안을 받게 되었다. 공모전 참여 방식 한이음 공모전은 ICT 분야 실무경력이 탄탄하신 멘토님들께서 미리 진행하고자 하시는 프로젝트 개요서를 올려놓으시면 그것을 읽어본 후 자신이 참여하고자 하는 프로젝트를 신청하는 방식이다. 물론 신청한다고 다 승인이 되는 것이 아닌, 멘토님께서 승낙을 해주셔야 해당 프로젝트에 참여할 수 있는 자격이 주어진다. 우리 또한 마찬가지로 참여를 원하는 주제를 탐색 후 신청을 했고, 다행히 빠른 시일 내에 승인이라는 결과를 답변받았다..
문제점 IntelliJ 내에서 프로젝트를 실행하려는 데 갑자기 아래와 같은 에러가 떴다. 심지어 MySQLWorkbench를 실행하니 아래와 같은 에러창이 떴다. 해당 에러 때문에 프로젝트가 실행조차 되지 않아서 매우 곤란한 상황에 처했다. 그래서 오랜 시간 동안 구글링을 해본 결과, 현재 나의 MySQL 버전과 맥 최신 OS와의 충돌로 인해 발생하는 문제인 것 같았다. 생각해 보니 최근에 맥 OS를 최신 버전으로 업그레이드를 했던 기억이 났다. 해결방안 해결 방법은 MySQL 버전을 다운그레이드를 하는 것이라고 한다. 하지만, 다운그레이드를 해도 같은 에러는 계속해서 반복되었다. 결국 IntelliJ 내에서 build.gradle에 아래와 같이 현재 나의 MySQL 버전에 맞는 의존성을 주입시켜 주었더..
개발을 할 때 가장 중요한 과정 중 하나인 테스트 주도 개발(Test-Driven Development, TDD) 이라는 용어를 개발자라면 어디선가 한 번쯤 들어봤을 것이다. 기능이 제대로 작동하는지 테스트할 수 있는 방법 중 하나기에 매우 중요한 과정이라고 말할 수 있다. 그러나, 언제까지 TDD 양식을 맨날 일일이 타이핑해 가면서 작업할 것인가? 그럴 수 없기에 우리는 IntelliJ의 Live Template 을 활용하여 해당 양식을 편리하게 불러올 수 있도록 설정해 보도록 하겠다. 설명 기준은 MacOS 입니다. 1. MacOS 기준으로는 Preferences, Windows 기준으로는 Settings에 들어간다. 2. Editor -> Live Templates을 클릭한 후, Java를 선택한 ..
문제의 시작 이번에 진행하게 된 프로젝트 내에서도 회원가입 및 로그인 기능 구현이 있어, 저번에 진행했던 방식대로 Spring Security와 JWT를 사용하여 구현을 시작하려는데 위와 같이 WebSecurityConfigurerAdapter가 적용이 안 되는 현상이 발생했다. 제대로 된 코드를 작성하려면 이러한 상황이 발생하면 안 되기에 열심히 알아본 결과! 공식 문서로 이동하기 Spring | Home Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform. spring.io 공식 문서에 따른 결과로는, Spring Security 5.7.0-M2부터는 내가 사용했던..