전체 글 69

[알고리즘] 자료구조 해시테이블 | 체이닝 vs 오픈 어드레싱 차이

해시테이블(HashTable)이란? 키(Key)와 쌍(Pair)을 저장하는 자료구조입니다.빠른 검색, 삽입, 삭제가 가능하며, 일반적으로 평균 시간 복잡도가 O(1)입니다.내부적으로 해시함수를 사용하여 배열의 인덱스를 계산하고, 해당 위치에 데이터를 저장합니다.  주요 개념 1. 해시 함수입력된 키를 특정 크기의 배열 인덱스로 변환하는 함수좋은 해시함수는 충돌을 최소화해야 함2. 충돌서로 다른 키가 같은 해시 값을 가질 때 발생하는 문제충돌 해결 방법으로 체이닝(Chaining) 또는 오픈 어드레싱(Open Addressing) 기법 사용    # 1. 체이닝class HashNode: def __init__(self, key=None, value=None): self.key = key..

알고리즘 2025.03.13

[알고리즘] 실무에 바로 쓰이는 알고리즘 by Python | 파이참 자동완성 끄기

https://www.inflearn.com/chats/1384039/%ED%95%9C%EC%A4%84-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1-%ED%95%B4%EC%A0%9C-%ED%8C%8C%EC%9D%B4%EC%B0%B8-%EC%84%B8%ED%8C%85-%EA%B3%B5%EC%9C%A0%ED%95%A9%EB%8B%88%EB%8B%A4?srsltid=AfmBOor3ZbxouO4i_wMan0iJLgAvxrp_j9XLCU5G7RYt5jqEMoHPMO-w 한줄 자동완성 해제 파이참 세팅 공유합니다. - 인프런 | 고민있어요안녕하세요 고민글은 아니고 혹시나 해서 같이 강의 들으시는 분들하고 공유하고 싶어서글 올립니다.(아마 많이 알고 있으시겠지만 혹시나 싶어서 공유합니다. 혹시 ..

알고리즘 2025.02.04

[트러블슈팅] warning: adding embedded git repository 오류 해결 | 중첩 Git Repository 문제 해결

깃허브에서 이렇게 저장된 깔끔한 디렉토리로 정리하려고 시도했는데,  안에 내용들이 하나도 들어가지 못한 모습이다.  상태를 확인해주니 별 이상없이 잘 보이는 모습이다.하지만 안에 내용은 하나도 들어가지 않은 것을 보아 제대로 push가 이루어지지 않았음을 알 수 있었다.  파일을 강제로 푸쉬하고 add commit하려고 하는데warning: adding embedded git repository: flutter_project라는 오류가 발생했다.하위 프로젝트에 별도의 .git 파일이 있기 때문에 발생한 중첩 저장소 문제였다. rm -rf flutter_project/.gitrm -rf material_flutter_app/.git 이 명령어들로 삭제해주고 add까지는 성공했지만 커밋에서 막혔다.git a..

트러블슈팅 2024.12.13

[Flutter] 위젯의 생명주기 10단계

1. createState()처음 스테이트풀을 시작할 때 호출- StatefulWidget 클래스를 상속받는 클래스는 반드시 createState() 함수를 호출해야 함.이 함수는 다른 생명주기 함수들이 포함된 State 클래스를 반환해야 함.즉, 위젯의 상태를 생성하는 함수로 생각할 수 있음.  2. mounted == truecreateState() 함수가 호출되면 mounted는 true- createState() 함수가 호출되어 상태가 생성되면 곧바로 mounted 속성이 true로 변경.mounted 속성이 true라는 것은 위젯을 제어할 수 있는 buildContext 클래스에 접근할 수 있다는 의미.buildContext가 활성화되어야 setState() 함수를 이용할 수 있음. 아니면 오류..

Flutter 2024.12.10

[트러블슈팅] The emulator process for AVD Pixel_3_API_30 has terminated. 오류 | 플러터 에뮬레이터 실행 안됨 | AppData 경로 찾는법

1. 문제 정의Android Studio에서 Device Manager를 통해 에뮬레이터를 실행하려고 하니 The emulator process for AVD Pixel_3_API_30 has terminated.라는 오류가 지속됨.   2. 사실 수집    3. 원인 추론https://suzzeong.tistory.com/119 [error] The emulator process for AVD has terminated[error] The emulator process for AVD has terminated 이 에러로 갑자기 에뮬레이터가 작동 안될 때가 너어어어어어어무 많았다 그래서 결국 이 글을 쓰기로 결심!!!!!!! 이런 에러가 난다고 해서 한 가지 방법suzzeong.tistory.com이 블..

Flutter 2024.12.03

내일배움캠프 솔직 후기 : 비전공자의 백엔드 부트캠프 현실 후기

1. 내일배움캠프 이전의 삶저는 비전공자입니다. 특히 어문계열로, 개발과는 거리가 먼 전공이었어요.개발에 관심을 가지게 된 것은 학교에서 들었던 C 프로그래밍 교양이었습니다.수업에서는 계산기 프로그램을 짜는 등 기본적인 문법을 배우는 것에 그쳤습니다.공부를 하면 할수록 문법을 배우는 것으로 그치지 않고 이 언어를 활용하여 더 복잡하고 의미 있는 무언가를 만들어내고 싶다는 생각이 들었습니다.하지만 비전공자인 저에게는 전공자 학우와 친해질 기회도 없었고 프로젝트에 참여할 수 있는 실력도 없었습니다.개발에 대한 관심은 점점 커졌지만, 당장 실력과 인맥 무엇도 없어 큰 벽에 막힌 기분에 무력함을 느끼곤 했습니다.이 벽을 깨고 앞으로 나아가기 위해 나를 성장시킬 수 있는 무언가 필요하다고 느끼기 시작했습니다.그 ..

카테고리 없음 2024.11.26

[Flutter] 플러터 특징 | 플러터 장점

플러터 특징크로스 플랫폼 앱 개발 프레임워크구글에서 만든 다트(Dart) 언어 사용으로 자바나 C# 같은 컴파일 언어가 가진 특성을 활용하여 개발 가능  플러터 장점1. 높은 개발 효율안드로이드와 iOS 앱을 동시에 개발할 수 있어 효율적어떤 운영체제에서도 똑같은 사용자 인터페이스와 사용자 경험(UX)을 제공 가능플러터의 핫 리로드(hot reload) 기능을 통해 소스 수정 후 번거로운 빌드 과정 없이 결과 화면에 바로 표시해주기 때문에 개발 시간 축소 가능 2. 유연한 사용자 인터페이스역동적이면서 유연한 인터페이스를 가져, 다양한 위젯을 제공하므로 사용자 맞춤형 앱을 쉽게 개발 가능더하여, 만약 원하는 위젯이 없다면 선과 도형으로 직접 그려서 쉽게 생성 가능강력한 애니메이션 기능 제공으로 복잡한 계산..

Flutter 2024.11.23

[Spring] JwtUtil 클래스란? | JwtUtil 역할 | JwtUtil 구현

JwtUtil의 주요 역할JWT 생성사용자의 ID, 이메일, 권한 등의 정보를 포함하는 JWT를 생성JWT는 클라이언트로 전달, 이후 요청에서 사용됨JWT 파싱 및 검증클라이언트가 제공한 JWT를 파싱하여 토큰에 포함된 정보 추출서명을 검증해 토큰이 변조되지 않았는지 검증토큰의 유효 시간과 만료 시간을 확인JWT 관리HTTP 요청 헤더에 Bearer 접두사를 제거하여 순수한 JWT를 추출JWT를 기반으로 사용자 정보를 확인하여 인증 및 권한 처리 JwtUtil 코드@Componentpublic class JwtUtil { private static final String BEARER_PREFIX = "Bearer "; private static final long TOKEN_TIME = 60 ..

Spring 2024.11.22

[트러블슈팅] S3 URL DB에 저장 안됨 | URL.openStream() 권한 문제 | RabbitMQ rabbitTemplate.convertAndSend 안됨

1. 문제 정의클라이언트 요청에 따라 이미지는 S3에 업로드되었으나,데이터베이스에 URL이 저장되지 않는 문제가 발생.초기 구현에서는 S3 URL을 직접 URL.openStream()으로 가져왔으나, 접근 권한 문제로 인해 이미지 데이터 접근이 실패.   2. 사실 수집이렇게 포스트맨에서는 잘 저장이 되는데 DB에는 저장이 안되는 문제 발생 RabbitMQ에서 제대로 큐가 저장되거나 소비된 흔적이 없음. DB에도 저장에 전혀 안되는 모습.  3. 원인 추론1. RabbitMQ 메시지 전달 실패 가능성: rabbitTemplate.convertAndSend 호출 X 혹은 큐에 메시지 생성 X2. 큐 소비 문제: ImageUploadConsumerService에서 메시지를 제대로 처리하지 못하거나 예외 발생..

카테고리 없음 2024.11.13

[기술적 의사결정] RabbitMQ vs. Kafka? | S3 이미지 업로드 및 URL 저장 RabbitMQ 도입

1. 도입 배경프로젝트에서 S3 이미지 업로드 및 URL 저장 중 발생한 문제를 해결하는 과정에서 RabbitMQ를 도입하게 되었습니다. 다음과 같은 이유로 RabbitMQ를 선택하였습니다:비동기 처리의 필요성: 이미지 업로드와 URL 저장 작업을 요청과 별도로 처리하여 클라이언트 응답 속도를 개선하려 했습니다.메시지 안정성: 여러 이미지 업로드 요청을 안전하게 큐에 넣고, 문제가 발생했을 때 재처리할 수 있는 안정적인 시스템이 필요했습니다.라우팅 요구: 특정 조건에 따라 메시지를 다르게 처리해야 하는 복잡한 작업 흐름을 지원할 라우팅 기능이 필요했습니다.  2. 기술 비교특성KafkaRabbitMQ메시지 전달 방식로그 기반(스트림 저장)브로커 기반(큐와 주제 사용)설계 목적대규모 데이터 스트리밍 및 분..

개발일지 2024.11.08