no image
수식 표기법
수식 표기법 수식을 표현하는 방법으로 중위, 전위, 후위법이 널리 사용됩니다. 이러한 표기법들은 계산기를 포함한 컴퓨터 프로그램에서 수식을 표현하고 계산하는 데 사용됩니다. 각각의 표기법은 스택을 사용하여 계산을 수행할 때 유용합니다. 수식 표기법을 사용하는 이유는 연산자의 우선순위를 명확하게 할 수 있고, 복잡한 수식을 간단하고 명료하게 표현하기 위함입니다. 특히 전위나 후위 표기법을 사용하면 괄호를 사용하지 않아도 연산자의 우선순위를 명확히 파악할 수 있습니다. 중위 전위 후위 1+3*5 +1*35 135*+ a*b+8 +8*ab ab*8+ (2+2)+9 +9+22 22+9+ 전위 표기법 수식에서 연산자가 피연산자 앞에 위치하는 표기법이며 이 표기법에는 연산자가 피연산자들의 앞에 오기 때문에 피연산자..
2024.02.26
no image
탐욕법
Greedy Algorithm🏋 탐욕 알고리즘은 말 그래도 탐욕스러운 이라는 의미를 가지며 , 선택의 순간이 오면 눈앞에 보이는 최적의 상황만을 고려하여 최종적인 해답에 도달하는 방법을 말합니다. 이 알고리즘은 각 선택의 순가에는 최적으로 보일 수 있지만, 그 선택이 전체적으로 보았을 때 최적인지는 보장되지 않을 수 있습니다. Greedy Algorithm 불가능한 경우 1. 현재 상황에서는 마시멜로 1개를 받을 수 있습니다.(현재 시점에서의 최선의 선택) 2. 그러나 5분을 기다리면 2개의 마시멜로를 받을 수 있습니다. (미래를 고려한 선택) 그리디 알고리즘에 따르면 각 단계에서 현재 최선으로 보이는 선택을 하기 때문에 현재 시점에서 1개의 마시멜로를 받는 것이 선택될 것입니다. 그러나 미래를 고려할 ..
2024.02.22
no image
해시법
배열 배열 A에서 새로운 값인 36을 추가하게 되며 삽입할 위치가 a[5]와 a[6] 사이의 이진 검색법으로 조사하고 B의 이미지처럼 a[6]이후의 모든 요소를 하나씩 뒤로 이동하게 됩니다. 요소가 이동할 때 필요한 복잡도는 O(n)이므로 비용은 작다고 할 수 없습니다. 삭제 같은 경우도 똑같은 비용이 들어갑니다. 해시법 해시법은 데이터를 효율적으로 저장하고 검색하기 위한 기법으로, 간단한 연산을 통해 데이터의 저장 위치를 결정하는 방식입니다. 일반적으로는 해시 함수를 사용하여 데이터의 키를 해시값으로 변환 후 이 해시값을 이용하여 데이터를 저장하거나 검색합니다. 위와 같이 해시값을 index로 하여 key값과 data를 저장하는 자료구조를 해시 테이블이라고 합니다. 이 해시 테이블은 해시값을 인덱스로 ..
2024.02.20
no image
배열 & 링크드리스트
배열(Array) 배열은 정적 자료구조이며 배열을 생성할 때 크기를 미리 정해놓고 해당 크기 만큼의 연속된 메모리 공간을 할당받는 것을 의미합니다. 이런 특성으로 배열은 컴퓨터 메모리에서도 데이터를 연속적으로 저장할 수 있습니다. 이렇게 연속된 메모리 주소를 할당받는 배열은 각 데이터에 대한 인덱스를 갖게 되며 배열의 각 요소는 해당 요소의 인덱스를 통해 직접 접근할 수 있습니다. 예를 들어 보면 array[0], array[1], array[2], array[3]....와 같이 인덱스를 사용하여 배열의 요소에 접근할 수 있습니다. 이걸 배열의 장점 중 하나인 임의 접근을 의미합니다. 그러나 배열은 한 번 크기를 정하면 수정이 불가능합니다. 따라서 배열은 크기를 동적으로 조잘할 수 없는 단점이 있습니다...
2024.02.14
no image
스택, 큐
스택 컴퓨터 과학에서 매우 중요한 자료구조 중 하나이며 이름 그대로 스택은 데이터를 쌓아 올린 형태를 가지고 있습니다. 이를 비유하면, 식당에서 쌓여있는 접시 더미나 책상 위에 쌓아 올린 형태를 가지고 있습니다. 이를 비유하면, 식당에서 쌓여있는 접시 더미나 책상 위에 쌓인 책처럼 데이터가 차곡차곡 쌓이는 모습을 상상할 수 있습니다. 또한 데이터의 저장과 삭제가 한쪽 끝에서만 이루어지는 특징을 가지고 있습니다. 이 한쪽 끝을 보통 위쪽이라고 하며 새로운 데이터가 스택에 추가되면 그 데이터는 스택의 위로 올라갑니다. 이것을 PUSH라고 합니다. 반대로 데이터를 삭제할 때는 가장 위에 있는 데이터가 먼저 삭제됩니다. 이것을 POP이라고 합니다. 스택은 주로 함수 호출이나 재귀 알고리즘 등에서 사용됩니다. 예..
2024.02.13
no image
Intellij IDEA 로컬기록
Intellij IDEA 로컬기록 Intelij IDEA의 로컬 기록은 프로젝트의 수정 버전을 자동으로 기록하여 개발자가 변경 사항을 추적하고, 필요한 경우 복원할 수 있는 기능을 제공합니다. 변경 사항 복원 자동 기록 코드 편집, 테스트 실행, 애플리케이션 배포 등의 이벤트로 인해 발생한 프로젝트의 수정 버전을 자동으로 기록합니다. 파일 복원 중요한 코드를 삭제한 경우나 원치 않는 변경이 있을 때, 로컬 기록을 사용하여 해당 파일이나 변경 내용을 복원할 수 있습니다. 롤백 프로젝트에 버전 관리가 활성화되지 않았거나 마지막 커밋 이후 원치 않는 변경 사항이 있는 경우, 로컬 기록을 사용하여 파일을 이전 상태로 롤백할 수 있습니다. 설정 가능한 보존 기간 기본적으로 로컬 기록은 5일 동안 보존되지만, 이 ..
2024.02.09
no image
CRON 표현식
CRON 표현식 주기적으로 실행되어야 하는 작업을 정의하는 일반적인 방법입니다. 이것은 UNIX 및 유닉스 기반 시스템에서 널리 사용되며, 다양한 스케줄링 작업에 활용됩니다. CRON 표현식을 작성할 때 주의할 점은 각 필드가 해당 시스템의 로컬 시간대 및 설정에 따라 해석되기 때문에 때때로 시스템의 로컬화된 환경 설정에 따라 결과가 달라질 수 있기 때문에 이것을 고려해야 합니다. 필드 허용되는 값 허용되는 특수문자 년 1970 ~ 2099 , - * / 월 1 ~ 12 또는 JAN ~ DEC , - * / 요일 0 ~ 6 또는 SUN ~ SAT , - * / L # 일 1 ~ 31 , - * / L W 시 0 ~ 23 , - * / 분 0 ~ 59 , - * / 초 0 ~ 59 , - * / 특수 문자..
2024.02.08
no image
TCP 3way handShake/TCP 4way handShake
TCP 3 way handShake 핸드셰이킹을 직역하면 주고받기라고 합니다. 정보 기술과 전기 통신 및 관련 분야에서 채널에 대한 정삭적인 통신이 시작되기 전에 두 개의 실체 간에 확립된 통신 채널의 변수를 동적으로 설정하는 자동화된 협상 과정입니다. 채널의 무리적인 확립이 잇따르며, 정상적인 정보 전송 이전에 이루어집니다. 3방향 핸드셰이크 1단계 - SYN(동기화) -> 1. X가 Y에게 Y야 내 말 잘 들리니? 프로세스는 클라이언트가 SYN 플래그가 설정된 TCP 패킷을 서버로 보내는 것으로 시작됩니다. 이 패킷은 연결을 설정하려는 클라이언트의 의도를 나타내며 데이터 새그먼트를 고유하게 식별하는 데 도움이 되는 ISN(초기 시퀀스 번호)도 포함합니다. 2단계 - SYN-ACK(동기화 승인)-> 2..
2024.02.06
no image
서버 응답: "status":"BAD_REQUEST","msg":"Failed to convert value of type 'java.lang.String
서버 응답: "status":"BAD_REQUEST" 서버에 클라이언트로부터 전송된 데이터를 처리하는 과정에서 발생했습니다. 에러 메세지를 보면 Failed to convert value of type.......entity.ClubCategory와 같이 데이터 변환에 문제가 있는 것을 알 수 있습니다. 서버에서 Enum으로 카테고리의 종류를 SPORTS, ALL, TODAY, STUDY..등으로 영어로 받고 있어서 데이터를 전송할때도 똑같이 영어로 전송해야 하는데 한글로 전송해서 발생되는 문제 였습니다. 서버에서 클라이언트로부터 전송된 데이터를 처리하는 과정에서 발생한 문제를 해결하기 위해 Enum클래스를 수정하였습니다. public enum ClubCategory { ALL, SPORTS, TODAY..
2024.01.30