전체 글 (41) 썸네일형 리스트형 [ Flutter ] 화면 스크롤 시 AppBar 색상이 변경되는 문제 해결 플러터로 앱 스크린 구현 중 다음과 같은 현상이 발생하였다. SingleChildScrollView를 사용하여 화면을 스크롤하게 만든 다음, 화면을 스크롤하면 appbar의 색상이 변경되는 현상인데,이게 눈에 너무 거슬려서 꼭 해결해야 하는 문제라고 생각했다. 구글링 결과 찾은 방법은 다음과 같다. 1. scrolledUnderElevation : 0 무슨 이유인지 해결되지 않았다. 2. surfaceTintColor : Colors.transperent이것도 해결되지 않았다. 내가 해결한 방법은 바로 forceMeterialTransparency : true 였다.이걸 추가하니 바로 해결되었다.appBar: AppBar( forceMaterialTransparency: true, .. [ 운영체제 ] 메모리 할당 방식 메모리 할당 방식은 연속 메모리 할당, 불연속 메모리 할당 방식으로 나눠진다. 연속 메모리 할당: 프로세스 하나의 메모리를 하나의 연속된 물리 주소 공간에 적재- 고정 분할 : 물리 메모리를 일정한 크기 파티션으로 나누고, 파티션 1개에 프로세스 1개 적재파티션 내부에 사용할 수 없는 남는 공간이 생기는 내부 단편화 문제가 발생한다. - 가변 분할 : 물리 메모리를 프로세스의 크기에 따라 다양한 크기의 파티션으로 분할프로세스들이 드나들변서 생긴 빈 공간이 연속적이지 않아 프로세스를 적재할 수 없는 외부 단편화 문제가 발생한다.-> 병합, 집약/압축의 방법으로 단편화 문제 해결 - 최초 적합, 최적 적합, 최악 적합 3가지 방법으로 배치할 수 있다.최초 적합 : 첫번째로 발견한 공간에 할당한다.최적 적합.. [ 운영체제 ] 메모리 관리 메모리 관리란?다중 프로그래밍 시스템에서 여러 프로세스가 메모리에 상주할 수 있도록 프로세스를 메모리에 적재, 할당, 제거하는 것.메모리 공유와 보호를 지원한다. 메모리 관리 정책1. 적재 : 언제 프로세스를 적재할 것인가?2. 배치/할당 : 프로세스를 메모리 어디에, 어떻게 저장할 것인가?3. 교체 : 메모리가 부족할 때 어느 프로세스를 제거할 것인가? Dynamic Loading ( 동적 로딩 )전체 프로그램을 적재하지 않고 함수가 호출되는 시점에 메모리에 적재하는 방법프로그램의 크기가 클 때 메모리를 효율적으로 사용 가능하다.필요할때만 적재되기 때문에, 코드의 양이 거대할 때 자주 호출되지 않는 함수에 대해 효율적이다. Static Linking ( 정적 링킹 )필요한 코드 또는 라이브러리를 실행 .. [ 운영체제 ] 교착상태 (Deadlock, 데드락) 교착상태란?다중 프로그래밍 시스템에서 프로세스들이 결코 일어나지 않을 사건을 기다리는 상태서로 상대방이 점유한 자원을 기다릴 때 발생한다. 교착상태의 발생 조건1. 상호 배제 : 한번에 프로세스 하나만 사용 가능한 자원이 존재한다.2. 점유와 대기 : 하나 이상의 자원을 점유한 상태에서 다른 프로세스에 할당된 자원을 얻으려고 대기하는 프로세스가 존재한다.3. 비선점: 다른 프로세스가 점유한 자원을 강제로 빼앗지 못하고 스스로 해제할때까지 대기한다.4. 순환대기: 상대방이 점유하고 있는 자원을 요구한다. 교착 상태의 해결 방법교착상태의 완벽한 해결방법은 존재하지 않지만, Deadlock Prevention, Deadlock Avoidance, Deadlock Detection 총 3가지의 방법이 존재한.. [ Flutter ] 키보드 올라올 때 화면이 같이 올라가요 요즘 캡스튼 프로젝트를 하느라 정신이 없습니다.그 중에서 검색창과 키보드와 관련된 문제를 해결하기 위해노력한 것을 기록으로 남겨보려고 해요..어제, 오늘 삽질하다가 어찌저찌 해결을 했습니다. 문제점 검색창을 누르면 키보드가 아래에서 올라오는데, 문제는 키보드가 올라오면서 화면을 위로 밀어버려내가 뭘 검색하는지 보이지가 않습니다.심지어 스크롤을 아래로 내려도 검색창은 내려오지가 않아서 볼 방법이 없었습니다. 해결방법구글링을 하면서 많은 자료들을 찾아봤는데,공통적으로 얘기하는 것이 Scaffold에 resizeToAvoidBottomInset을 적용하는 것이었습니다.resizeToAvoidBottomInset: true, 하지만 제 경우에는 해결이 되지 않았고 다른 방법을 찾아야 했는데요. 방법을 바꿔서.. vercel + mongodb 연동하기 현재 진행중인 제 프로젝트는vercel을 사용해서 백엔드 서버를 배포한 상황입니다. 로컬에서는 mongodb에 정상적으로 접근할 수 있었는데,배포를 하니 db에 접근할 수 없는 현상이 발견되었습니다. 찾아보니, vercel에서 mongodb를 사용하려면 별도 설정을 해야 한다는 것을 알았습니다. 해결방법 vercel -> integraion 에 들어갑니다. mongodb 검색 후 add를 눌러줍니다. 계정 선택 후 사용할 프로젝트를 선택하여 연결하면 설정이 완료됩니다. 맨 아래 vercel-admin-user 가 추가되면 성공적으로 설정이 완료된겁니다.이후 테스트 해보니 정상적으로 db에 접근할 수 있는 것을 확인했습니다. 서로 다른 도메인 간 쿠키 공유 로컬 환경에서는 SNS 로그인 시 토큰이 쿠키에 잘 저장되어,로컬로 연 백엔드 서버에 잘 전달이 되었습니다. 그런데, 배포를 하고나니 로그인 후 401 에러가 계속 발생하는 현상을 발견했습니다. 401 에러는 웹 서버가 요청된 리소스에 대한 유효한 인증 자격 증명이 없다고 판단했을 때 발생합니다. 즉, 사용자 인증이 필요하거나, 잘못된 인증 정보가 제공되었을 때 나타납니다. 찾아보니까, 엑세스 토큰이 전달되지 않아서 401에러가 발생했던 거 였습니다.그러면 왜?? 로컬에서는 토큰이 잘 전달되었는데 배포를 하니까 전달이 되지 않았을까요?? 정답은 도메인이 서로 달라서 였습니다. 제 서비스는 프론트 도메인과, 백엔드 서버의 도메인이 서로 다릅니다.그렇기 때문에 쿠키가 제대로 전달이 되지 않아 서비스를 이용할.. [Postman] Error: connect ECONNREFUSED 127.0.0.1:8000 API 개발을 하다가, 갑자기 서버에 연결이 되지 않는 오류가 발생했습니다. Error : connect ECONNREFUSED 127.0.0.1:8000 에러의 내용은, 127.0.0.1:8000 의 연결이 거부되었다는 내용입니다.별 어려움 없이 해결할 수 있었는데, 원인은 다음과 같습니다... 서버의 포트를 8080으로 열었는데, 무의식적으로 포스트맨에서 8000 포트로 요청했던 것이었습니다!!포트 수정 후 정상적으로 작동하였습니다. 이전 1 2 3 4 ··· 6 다음