💻 윈도우가 부팅되지 않을 때 시도해본 5가지 복구 방법 (초보자용 정리)

며칠 전, 갑자기 컴퓨터를 켰더니 ‘복구: Windows가 제대로 로드되지 않았습니다’라는 메시지가 떴다.

 

재시작을 해도 “환영합니다” 화면에서 멈추는 현상이 반복되어, 직접 복구를 시도해보았다.

 

아래는 내가 시도한 복구 과정이다. 초보자도 따라할 수 있도록 정리했다. 단, cmd(명령 프롬프트)에 코드를 입력하는 방법이 있는데, 이는 컴퓨터를 다룰 때 두려워할 필요 없다. 오타없이 입력만 잘해주면 된다.

 

먼저 위의 '환영합니다' 화면에서 멈춤이 반복된다면, 본체의 전원버튼을 눌러서 컴퓨터를 껐다켰다 반복한다.

2~3회 반복되면 윈도우가 자동으로 잘못됨을 확인하고 다른 화면으로 데려다준다. 그 화면이 아래 해결의 시작점이다. 번거롭더라도 계속 그 화면으로 들어가줘야한다.

 

✅ 0. 해결책

가장 쉬운 방법은 아래 사진에서 '시스템 복원'(가장 우측 아래)에 들어가는 것이 정답이다. 아래 수많은 방법들을 다 해보았으나, 그냥 시스템 복원이 정답이다. 아래 모든 방법을 다하고 이 방법을 했더니 바로 해결 되었다.

시스템 복원은 내가 사용했던 파일들은 사라지지 않고, windows 관련 설정 파일들만 복원하는 개념이라 파일 손실에 걱정하지 않아도 된다. 나는 가장 최근 파일을 선택하여 복원하였다.

 

그런데 갑자기 chrome이 실행이 안되는 현상이 있었다. 이 문제 해결을 위해서 크롬만 재설치 했다. 이외에는 큰 파일 손상이 없었다.


✅ 1. 시동 복구 (Startup Repair)

 

또 다른 시도해볼 수 있는 방법이다.

문제 해결 화면에서 [고급 옵션] → [시동 복구] 클릭

사용자 계정 선택 후 비밀번호 입력 화면이 나오면,

→ 만약 비밀번호가 없거나 기억 안 나면 그냥 “계속” 눌러도 진행된다

하지만 내 경우에는, 복구를 시도했지만 부팅 문제는 해결되지 않았다

 

실패 시에는 다음 단계로 넘어간다

 


✅ 2. 최근 Windows 업데이트 제거

 

업데이트로 인해 시스템이 꼬였을 수도 있다. 이럴 땐 업데이트 제거를 시도해본다.

[고급 옵션] → [업데이트 제거] 클릭

‘품질 업데이트 제거’ 또는 ‘기능 업데이트 제거’ 중 하나 선택

 

하지만 내 경우엔 **“문제가 발생하여 업데이트를 제거할 수 없습니다”**라는 오류 메시지가 떴다.

→ 이 방법도 실패

 


✅ 3. 안전 모드로 진입 → 시스템 검사

 

이제부터는 조금 더 직접적인 방법이다. 안전 모드에서 시스템 파일 검사를 실행한다.

 

📌 진입 방법:

1. 문제 해결 화면 → [고급 옵션] → [시작 설정]

2. → ‘다시 시작’ 클릭

3. 파란 화면이 뜨면 숫자 키 F6 (명령 프롬프트로 시작) 누르기

4. 아래처럼 검은 화면이 뜬다:

C:\Windows\System32>

 

 

🔧 시스템 파일 검사 명령어:

sfc /scannow

윈도우의 시스템 파일이 손상된 것이 있는지 검사하고 자동으로 복구해준다

시간이 좀 걸리므로 천천히 기다리자

 


✅ 4. 윈도우 이미지 복구 (DISM 명령어)

 

sfc /scannow 만으로 안 되는 경우에는, 다음 단계로 윈도우 이미지 자체를 복구해주는 DISM 명령어를 사용한다.

 

명령어:

DISM /Online /Cleanup-Image /RestoreHealth

실행 후 10~30분 정도 걸릴 수 있음(나의 경우 오래 걸리지 않았다.)

중간에 멈춘 것처럼 보여도 기다리자

복구가 완료되면, CMD 창을 닫고 컴퓨터를 다시 시작해본다

 


✅ 5. 새 사용자 계정 만들기

 

지속적으로 “환영합니다” 화면에서 멈춘다면, 기존 계정 자체에 문제가 있을 수 있다.

이럴 땐 새 계정을 만들어 부팅이 가능한지 확인한다.

 

① 계정 만들기 (CMD 창에서 입력):

net user 새계정이름 새비밀번호 /add

예시:

net user hyeyoung123 1234 /add

② 관리자 권한 부여:

net localgroup administrators hyeyoung123 /add

이렇게 하면 새 계정이 관리자 권한 계정이 된다.

 


🧷 주의할 점

새 계정으로 로그인하면 기존 계정의 바탕화면, 문서, 다운로드 등은 보이지 않지만

→ 실제로는 전부 C:\Users\기존계정이름 폴더에 남아 있다

파일 탐색기에서 해당 폴더에 들어가서 파일을 복사해서 새 계정으로 옮기면 OK

다만, 일부 앱 설정이나 자동 로그인이 초기화된 상태일 수 있음 (재설정하면 됨)


✅ 6 디스크 검사

위 방법으로 안된다면 디스크 검사를 진행한다. 

chkdsk C: /f /r

• 실행 후 Y 입력 → 재부팅 시 디스크 검사 자동 실행

시간이 오래 걸릴 수 있다. (30분~1시간+)

 

✅ 7. 사용자 계정 경로 초기화 (레지스트리 삭제)

기존 계정이나 새 계정이 바탕화면·문서 경로 잘못 설정되어 있으면 부팅에 실패할 수 있음

reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /f

→ 실행 후 바로 재부팅

 

✅ 8.자동 로그인 꺼보기 (AutoLogon 설정 제거)

윈도우가 자동 로그인 중 멈출 수도 있다.

reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /f

→ 자동 로그인 기능을 꺼서 부팅 후 수동 로그인 유도

→ 실행 후 재부팅


✅ 마무리하며

 

위 과정을 모두 시도한 끝에, 나는 새 계정으로 정상 부팅에 성공했고,

기존 계정의 파일도 새 계정으로 옮겨서 사용하는 데 무리 없었다.

 

컴퓨터가 부팅되지 않을 때 당황하지 말고,

차근차근 문제를 진단하고 시도해보면 대부분 직접 해결할 수 있다.

 

 

왜 이런 변화가 생겼나요?

예전에는 git pull을 실행하면 다음과 같은 두 가지 상황 중 하나가 자동으로 발생했습니다:

  1. Fast-forward 병합
    로컬 커밋이 없고 원격 브랜치가 최신 상태인 경우 자동으로 병합.
  2. Merge commit
    로컬 브랜치와 원격 브랜치에 다른 커밋이 있으면 자동으로 merge commit을 생성.

이런 자동 병합 동작은 가끔 원치 않는 병합 커밋을 만들어 혼란스러운 Git 히스토리를 만드는 원인이 되었습니다.

 

 

변경된 이유

최근 Git은 사용자가 명확하게 의도를 지정하도록 개선되었습니다.
git pull을 실행할 때 병합할 것인지, 리베이스할 것인지, 혹은 fast-forward만 허용할 것인지 설정하라고 요구합니다.

 

해결 방법

이제 명시적으로 병합 방식(merge/rebase/fast-forward)을 정해줘야 합니다.

  1. 한 번만 설정
    git pull 명령에 플래그를 붙여서 일시적으로 해결:
git pull --rebase origin main       # 리베이스
git pull --no-rebase origin main    # 병합
git pull --ff-only origin main      # Fast-forward만 허용

 

 

2. 역 설정으로 기본값 지정
자주 사용하는 방식을 기본값으로 설정하려면:

  • Merge를 기본값으로 설정:
     
    git config --global pull.rebase false
  • Rebase를 기본값으로 설정:
     
    git config --global pull.rebase true
  • Fast-forward만 허용:
     
    git config --global pull.ff only

일반적으로 충돌이 발생했을 때 상황에 따라 어떤 명령어를 써야 하는지 쉽게 정리해 드릴게요. 상황별로 어떤 명령어를 사용하면 좋은지 이해하면 충돌을 빠르게 해결할 수 있습니다.


1. 충돌이 났을 때 상황별 해결법

상황 1: 충돌을 병합(Merge)으로 해결할 때

  • 로컬 브랜치와 원격 브랜치의 커밋이 서로 다를 때 병합 커밋을 만들어 충돌을 해결합니다.

명령어:

git pull --no-rebase origin main
  • git pull이 merge 방식을 사용합니다.
  • 충돌이 발생하면 Git이 충돌 파일을 알려주고 수동으로 해결하면 됩니다.

단계:

  1. 충돌 파일 수정
  2. 수정된 파일 스테이징:
    git add 파일명
    
  3. 병합 완료 커밋:
    git commit
    

상황 2: 충돌을 리베이스(Rebase)로 해결할 때

  • 내 로컬 브랜치의 커밋을 원격 브랜치 커밋 위에 재정렬하는 방식입니다.
  • 히스토리를 깔끔하게 유지할 수 있지만, 충돌이 발생하면 수동으로 해결해야 합니다.

명령어:

git pull --rebase origin main

단계:

  1. 충돌이 발생하면 Git이 중단됩니다. 충돌 파일 수정.
  2. 수정된 파일 스테이징:
    git add 파일명
    
  3. 리베이스 재개:
    git rebase --continue
    
  4. 모든 충돌을 해결하면 리베이스가 완료됩니다.

중단된 리베이스를 취소하려면:

git rebase --abort

상황 3: Fast-forward 병합만 원할 때

  • 로컬 브랜치가 원격 브랜치보다 뒤쳐져 있을 때만 병합하고, 충돌이 나거나 브랜치가 분기되면 에러를 발생시킵니다.

명령어:

git pull --ff-only origin main

용도:

  • 충돌을 원하지 않고, 내가 단순히 원격의 최신 상태만 가져오고 싶을 때 사용합니다.

2. 내가 추천하는 일반적인 충돌 해결 순서

  1. 리베이스를 먼저 시도 (히스토리를 깔끔하게 유지하기 위해):
    • 충돌이 나면 수동으로 파일을 수정하고:
      git add 파일명
      git rebase --continue
      
  2. git pull --rebase origin main
  3. 리베이스가 어려우면 병합으로 전환:
    • 충돌 파일을 수정한 후:
      git add 파일명
      git commit
      
  4. git pull --no-rebase origin main
  5. 충돌을 무시하고 원격 브랜치를 덮어쓰고 싶을 때 (주의 필요!):
    • 내 변경 사항을 버리고 원격 브랜치를 가져오려면:
      git reset --hard origin/main
      

정리 요약

상황 명령어 설명

병합 커밋으로 충돌 해결 git pull --no-rebase origin main 충돌이 나면 수정 후 git add와 git commit으로 해결
리베이스로 충돌 해결 git pull --rebase origin main 깔끔한 히스토리 유지. 충돌 시 git rebase --continue를 사용
Fast-forward만 병합 git pull --ff-only origin main 분기된 브랜치가 없을 때만 병합. 충돌 발생 시 에러를 띄움
원격 브랜치로 덮어쓰기 (주의!) git reset --hard origin/main 로컬 변경 사항을 버리고 원격 브랜치를 그대로 가져옴 (데이터 유실 가능)

이렇게 상황별로 선택하면 충돌을 쉽게 해결할 수 있습니다. 일반적으로는 리베이스를 먼저 시도하고, 충돌이 너무 복잡하면 병합을 사용하세요! 😊

오늘은 고려대학교 소프트웨어창업학회 NEXT(멋쟁이사자처럼) 과 서울대학교 멋쟁이사자처럼의 연합 세션이 있었다.

세션에서는 다음 내용을 다뤘다.
1부. 노코드툴을 적절하게 사용하는 법 - 고려대 연사
2부. 대규모 트래픽을 서버에서 처리하는 법 - 서울대 연사

1부. 노코드툴을 적절하게 사용하는 법 배운점


1부에서는 처음에는 노코드툴이라는게 개발 공부를 하는 입장에서 되게 쉬운 프로그램이라는 인식이 있었다. 가벼운 실습도 진행했는데, 엄청 가볍고 쉽지만 이 툴 하나를 알고 모르고는 엄청난 차이가 있다는 것을 알았다.
맨날 듣기만하고 예전에 시도도 했었던 zapier로 실습을 했는데, ‘예전에 스타트업에 있을 때 이렇게 쉬운 것을 왜 적용 못했었지?’, ‘생각보다 엄청 강력하다’
라는 생각을 하게 되었다.

2부. 대규모 트래픽을 서버에서 처리하는 법 배운점


2부에서는 친구 졸업사진 때문에 앞부분은 많이 놓쳤지만, 노션으로 매우 꼼꼼한 자료를 준비해주셔서 재밌게 들을 수 있었다.
서버 개발자의 역할과, 서버 개발자가 왜 중요한지 알 수 있었다.
특히 배달의 민족에서 처음으로 마케팅으로 할인 쿠폰을 뿌렸을 때 서버가 터졌는데, 당시에는 배달의 민족이 터지면 배달업계 자체가 먹통이 되어 수많은 자영업자들이 피해를 본 사례가 있었다. 이것을 치킨대란 이라고 하는데, 하나의 기업이 시장을 완전히 먹었을 때의 폐해를 보여주는 듯하다.
또한 배달의민족이 요즘 추세가 좀 기울고, 쿠팡이츠가 무료배달 정책으로 매섭게 성장하고 있다. 이러다가 따라잡히는 것은 아닌가 싶었는데 생각보다 배달의 민족이 여전히 높은 점유율로 1위라는 사실을 알게 되었다. 이전에 얼마나 많이 독점했던 것인가. 쉽게 쿠팡에게 대체되고 몇 년내로 배민이 망할 수도 있겠다고 생각했는데, 시장 크기와 점유율을 봤을 때 분명 배민은 새로운 서비스로 살아남을 것 같다.

또한 아래와 같은 실천 리스트들을 얻어왔다.
-나도 남이 아닌 나를 위해서, 상당히 풀어헤치고 깔끔한 형태로 자료를 정리해둬야겠다싶다.
-평소에 배달의민족 개발 컨퍼런스, 삼성 개발 컨퍼런스 등을 잘 챙겨봐야겠다 싶다. 부담없이 많이 접해보자. 어느순간 뚫리는 날이 있을 것이고, 이런 것들이 쌓여서 큰 변화를 일으킬 듯하다.

3부. 자율 뒤풀이


사실 뒤풀이는 가지말까 고민했다. 왜냐하면 요즘 술이 좋지도 않고, 집에가서 영상 편집이나 오늘 배운 세션을 복습하는 시간을 가지고 싶다고 머릿속에서 계속 떠다녔기 때문이다. 또한 나이도 조금 들었다고 이제는 새로운 사람과 만나서 친해지는게 막 쉽지만은 않다.
우선 현재 운영진인 여자 동생들과 2시간 정도 자유롭게 떠들었다. 커리어 이야기도 했는데, 생각보다 세상이 정말 좁다는 결론을 뒷받침하는 다양한 사례들을 이야기했다. 이 세상은 좁다. 결국 세상이 나의 무대다! 동생들과 친해질 수 있어서 너무 좋았다. 잠깐이지만 이 시간이 우리 관계에서 분명 큰 힘이 될거야.
그리고 자리를 옮겨서 작년에 같이 사회를 봤던 서울대 멋사분과 이야기를 나눴다. 오히려 모르는 사람을 새로 사귄다면 불편할 것 같았는데, 그래도 아는 사람과 대화할 수 있어서 너무 다행이었다. 근데 또 대화 주제도 개발자의 종류에 대해서 이야기했다. 초반 개발자로서 가지고 있는 생각들을 나눴다.

1) 평소에 휴식 때 개발에 대한 정보를 접할 것
: 유튜브도 쉴 때 개발 관련 영상 많이 보기.

2) 개발자의 종류
: 내가 쉴 때 임베디드 개발자에 대해 알아봤었는데, 이 개발자에 대한 생각을 나눴다. 그리고 서울대 멋사분은 현재 회사에서 근무 중이신데 데브옵스 분들에 대한 생각을 공유해주셨다.

3) 학회원들의 분류
-창업하는 사람
-개발자 대기업 취업 원하는 사람
-개발자 스타트업 계열 기업 원하는 사람
-다른 직무로 가는 사람
: 내가 대기업과 스타트업에 둘다 도전해봤고 이제는 확실하게 해야할 때라고 생각한다. 이것저것 경험해봤으니 잘해보자!


뿌듯한 하루다! 오늘의 인사이트들 잘 간직해서 다시 나만의 시간을 잘 가져보자.

+ Recent posts