본문 바로가기

전체 글

(143)
노션 워크스페이스에서 멤버 제거 (1000블록 문제 해결) 어느날 노션에 1000블록을 다 사용했으니 유료결제 하라는 메시지가 나오고 나서 진짜로 한글자도 못고치게 락이 걸렸다노션은 개인사용자에게는 사용 제한을 두지 않으나, 협업 프로젝트 사용자에게는 과금을 하고 있다과거 이 문제는 협업 프로젝트 주체인 '워크스페이스'를 제거하거나 해당 워크스페이스에서 멤버를 제거하면 해결됐는데.. 최근 노션의 정책변화로 1. 워크스페이스 제거 자체가 불가능해졌고2. 기본 워크스페이스에서 멤버를 추방하는 것이 불가능해졌으며3. 멤버 없는 깨끗한 기본 워크스페이스를 만드는 것도 불가능해졌다 노션은 계속해서 이 부분에 대해 정책을 바꾸고 있어서블로그나 레딧에서도 대책을 찾기가 쉽지 않고 당장 노션을 써야 하는 사람들은 결제할 수밖에 없음 그런데 나는 시간이 넘치는 사람이었고 결제욕..
스프링이벤트 자동알림을 위한 도메인 작성 domain.alarms ├── AlarmDTO.java // 알림 발송에 필요한 데이터를 담는 DTO ├── AlarmFactory.java // 알림 타입에 맞는 Sender(전략)를 찾아주는 팩토리 ├── AlarmSender.java // 모든 알림 발송 전략이 구현해야 하는 인터페이스 │ ├── listeners // 다른 도메인의 이벤트를 수신하는 리스너 패키지 │ ├── CreateGroupListener.java // '그룹 생성' 이벤트를 수신 │ └── strategies // 실제 알림 발송 로직을 담고 있는 전략 패키지 ├── AlarmEmail.java // 'EMAIL' 타입 전략 (이메일 발송) ├── AlarmLocal.java // 'LOCAL' 타입 전략..
스프링부트 인텔리제이 기본세팅 새프로젝트 화면에서 미리 세팅하고 시작하자
구글클라우드 결제계정 생성시 '유효하지 않은 전화번호' 오류 해결 문제 발생구글 클라우드에서 결제 계정을 생성하려 했으나, 전화번호 인증 단계에서 반복적으로 오류가 발생했다.오류 양상: 1. 전화번호와 통신사를 입력하고 '인증번호 전송'을 누른다.2. 인증번호가 발송되지 않고 양식이 자동으로 제출된다.3. 유효하지 않은 전화번호 오류 메시지가 나타난다.원인 추적:다른 컴퓨터, 브라우저, 심지어 '시크릿 모드'로 시도해도 동일한 현상이 발생했다.서비스센터나 FAQ에 문의를 보내기도 하고 문제해결 경로를 찾아봤지만 이 같은 사례를 찾을 수 없었다.오류가 아니라 값이 불일치해서 발생하는 문제는 아닐까 의심하게 됐다.진짜 원인: 한국 이용자에게만 존재하는 [실명] 개념구글이 관리하는 [법적이름]과 [실명]이 달라서 생긴 문제 구글 [아이디] 가 gildonghong, [실명]..
깃 충돌 보고서 (이력분기 💀💀💀 ) 📌 문제 발생 및 원인 분석발생 시점: 2025년 9월 12일 17:00 문제 상황: 팀원A가 작업물을 푸시(push)하기 직전 머지(merge) 과정에서 예기치 않은 깃(Git) 충돌이 발생.동시 작업자가 없었음에도 충돌이 발생해 혼란이 발생했고, 다른 팀원들도 연이어 유사한 충돌. 원인 분석: 당일 18:00 추적 결과, 팀원B가 공용 브랜치에 수정 내용을 바로 푸시(push)하여 이력 분기(Diverged History)가 발생한 것이 주요 원인으로 파악됨.이로 인해 팀원들의 로컬 이력과 원격 이력이 서로 달라지면서 충돌이 연쇄적으로 발생.문제를 인지한 후 당일 작업은 중단하고 다음 작업일에 해결하기로 합의. 🛠️ 해결 과정 및 조치해결 시점: 2025년 9월 15일 10:00 ~ 11:30 ..
깃충돌 대응기록 (동시작업 🤣) 📌 최근 깃(Git) 충돌 현황 및 해결최근 이틀간 두 건의 깃(Git) 충돌이 발생했다. 첫 번째 충돌: 전역 const 키워드 적용 과정에서 발생. 두 번째 충돌: main.dart 파일 동시 수정으로 인해 발생. 두 건 모두 소스 제어 도구의 비교 분석 기능을 활용해 충돌을 해결했다. 해결 과정 자체는 복잡하지 않았으나, 향후 충돌 빈도를 줄이기 위한 예방책 마련이 필요하다. 💡 문제 해석 및 개선 방안깃(Git) 충돌은 팀 협업 과정에서 예상 가능한 자연스러운 이벤트이다. 특히 광범위한 리팩토링이나 main.dart와 같은 핵심 파일을 수정할 때 발생 가능성이 높다. 이러한 충돌을 단순히 개발 프로세스의 오류로 보기보다는, 효율적인 협업을 위한 중요한 피드백으로 인식해야 한다. 개선방안 1) ..
flutter) Scrollable.ensureVisible 모바일 키보드 자리 문제 해결 Flutter: 키보드에 가려지는 입력창 문제, Scrollable.ensureVisible로 해결화면 하단 입력창이 키보드에 가려짐 → 사용자 경험 저해Scrollable.ensureVisible 적용 → 사용자 경험 향상 기존 방식의 한계ScrollController.animateTo 사용문제점• 부정확한 위치 선정: 실제 포커스된 입력창 보장 불가• 타이밍 불일치: 키보드 애니메이션과 스크롤 애니메이션 불일치Scrollable.ensureVisible 소개특정 위젯의 BuildContext 기반 자동 스크롤 위치 조정 기능입력창이 화면 내 완전 표시 보장구현 방법FocusNode 할당 → 입력창 포커스 감지initState에서 FocusNode 리스너 추가리스너 콜백 내 Scrollable.ensu..
리팩토링 '빅뱅' 금지 ( 너무 많은 컴파일 에러 😫) 리팩토링 '빅뱅' 금지회원 정보를 담은 엔티티인 member 에서 정규화 명목으로 MemberAddress 를 만들어뒀으나 활용도가 낮아 다시 address 필드로 통합하는 리팩토링을 시도했다. member 엔티티는 다른 도메인에서 두루 참조하고 있었기 때문에 해당 코드들에서 다량의 컴파일 에러가 발생했다. 사전에 이를 고지했고 당초 10분 미만 작업으로 해결할 수 있을것으로 낙관했으나 후속작업이 지체돼 프로젝트 일정 전체에 악영향을 줄 것이란 불안감이 커졌고 결국 작업을 원상 복구했다.결론적으로 리팩토링을 너무 우습게 봤다는 생각이 든다.찾아보니 이런 방식을 ‘빅뱅’ 방식이라고도 하며 매우 무식한 방법이라고 한다.미니 프로젝트였으니 망정이지 대형프로젝트였다면 예측하지 못한 사이드 이펙트가 많아질 수 ..