글

라벨이 IT인 게시물 표시

자바 객체 참조 전달 void 메서드 값 변경 이유 오류 해결 예제 코드

이미지
자바를 공부하다 보면 void 메서드는 값을 반환하지 않는데, 메서드 안에서 객체 값을 바꿨더니 원본 객체까지 변경되는 상황을 자주 만나게 됩니다. 처음 보면 “자바가 객체를 참조 전달하는 건가?”라고 생각하기 쉽습니다. 하지만 정확히 말하면 자바는 객체 자체를 참조 전달하는 언어가 아니라, 객체를 가리키는 참조값을 복사해서 전달 합니다. 쉽게 말하면 메서드 안의 매개변수와 메서드 밖의 변수가 같은 객체를 바라보고 있기 때문에, 그 객체의 내부 값을 바꾸면 양쪽에서 변경된 결과가 보입니다. 자바 객체 참조 전달 개념 먼저 정리하기 🔉 1. 자바는 참조 전달이 아니라 값 전달 방식입니다 결론부터 보면, 자바의 메서드 호출은 기본형이든 참조형이든 모두 값 전달 방식으로 이해해야 합니다. 여기서 많이 헷갈리는 부분은 객체 변수에 저장된 값이 객체 자체가 아니라는 점입니다. 객체 변수에는 실제 객체가 통째로 들어 있는 것이 아니라, 힙 메모리에 있는 객체를 찾아갈 수 있는 참조값이 들어 있습니다. Java Language Specification은 메서드가 호출될 때 각 매개변수마다 새로운 변수(parameter variable)가 만들어지고, 그 변수는 호출 시 전달된 인자 값으로 초기화된다고 설명합니다. 즉, 메서드 안의 매개변수는 바깥 변수와 같은 변수가 아니라 새로 만들어진 변수입니다. 🔉 2. 객체 값이 바뀌는 이유는 같은 객체를 바라보기 때문입니다 void 메서드에서 객체 값이 바뀌는 이유는 반환값 때문이 아니라, 메서드 안에서 같은 객체의 필드나 상태를 수정했기 때문입니다. 예를 들어 User user 라는 변수가 있고, 이 변수를 changeName(user) 에 전달했다고 가정해보겠습니다. 이때 user 변수 자체가 넘어가는 것이 아니라, user 안에 들어 있던 참조값이 복사되어 메서드의 매개변수로 들어갑니다. 하지만 복사된 참조값도 같은 객체를 가리킵니다. 그래서 메서드 안에서 user.name = "Kim...

HTML input label 누락 경고 해결방법 for id 연결 정렬 조정

이미지
HTML 폼을 만들다 보면 Lighthouse, PageSpeed Insights, 접근성 검사 도구에서 Form elements do not have associated labels 또는 input label 누락 경고가 나올 수 있습니다. 겉으로 보기에는 입력창 옆에 “이름”, “이메일”, “검색어” 같은 문구가 보이는데도 경고가 뜨는 경우가 있습니다. 여기서 많이 헷갈리는 부분은 화면에 글자가 보이는 것 과 HTML상에서 label이 input과 연결된 것 은 다르다는 점입니다. 가장 먼저 확인할 부분은 label 의 for 값과 input 의 id 값이 정확히 같은지입니다. MDN 공식 문서에서도 <label> 을 <input> 과 명시적으로 연결하려면 input에 id 를 넣고 label의 for 속성으로 같은 값을 지정한다고 안내합니다. HTML input label 누락 경고가 뜨는 이유 🔉 1. 화면에는 글자가 있지만 input과 실제로 연결되지 않은 경우 결론부터 보면, label 누락 경고는 대부분 “보이는 텍스트”가 아니라 “프로그램적으로 연결된 이름”이 없을 때 발생합니다. 예를 들어 아래 코드는 사용자 눈에는 이름 입력란처럼 보입니다. 하지만 접근성 도구 입장에서는 input 이 어떤 값을 입력받는 칸인지 명확히 알기 어렵습니다. 이 경우 span 은 단순한 텍스트일 뿐, 입력창과 직접 연결된 label이 아닙니다. 스크린리더나 검색 품질 진단 도구는 “이 input의 이름이 무엇인가”를 구조적으로 확인하려고 하기 때문에 경고가 나올 수 있습니다. 수정할 때는 label 을 사용하고, for 와 id 를 같은 값으로 맞춰야 합니다. 쉽게 말하면, 사람에게만 보이는 이름표가 아니라 브라우저와 보조기술도 이해할 수 있는 이름표를 붙여야 합니다. 🔉 2. placeholder만 사용해서 label을 대신한 경우 placeholder는 입력 예시를 보여주는 용도이지, label을 완전히 ...

깃허브 비밀번호 오류 100% 해결: 개인 액세스 토큰(PAT) 발급 및 등록 가이드

이미지
로컬 환경에서 코드를 열심히 수정하고 git push 를 보냈을 때, 갑자기 자격 증명 오류(Authentication Failed)를 마주하면 당황스럽기 마련입니다. 아이디와 비밀번호를 분명 정확하게 입력했는데도 로그인이 거부되는 이유는 GitHub의 보안 정책 때문입니다. 깃허브는 계정 탈취나 보안 취약점을 방지하기 위해 터미널 환경에서의 일반 계정 비밀번호 인증을 전면 중단했습니다. 대신 비밀번호보다 훨씬 안전하고 일회성 관리가 가능한 개인 액세스 토큰(Personal Access Token, PAT) 사용을 의무화했는데요. 개발자라면 반드시 한 번은 설정해야 하는 깃허브 토큰 발급 절차와 터미널 연동법을 쉽고 빠르게 정리해 드리겠습니다. 깃허브 개인 액세스 토큰 발급 6단계 상세 절차 토큰을 발급받는 메뉴는 의외로 홈페이지 메뉴 깊숙한 곳에 숨어 있어서 처음 접근할 때 헤매기 쉽습니다. 아래의 경로를 차근차근 따라오시면 1분 만에 발급 화면까지 진입할 수 있습니다. 🔉 1. 깃허브 계정 설정 및 개발자 메뉴 이동 경로 GitHub 공식 웹사이트에 로그인한 다음, 화면 오른쪽 맨 위에 있는 동그란 프로필 아이콘을 클릭합니다. 아래로 열리는 드롭다운 메뉴 창에서 톱니바퀴 모양의 Settings 를 눌러 계정 관리 페이지로 이동합니다. 설정 페이지로 넘어온 후, 왼쪽 사이드바 메뉴의 가장 최하단까지 쭉 스크롤을 내리면 나오는 Developer settings 메뉴를 클릭합니다. 이곳이 바로 외부 프로그램 연동을 위한 자격 증명을 총괄하는 세팅 센터입니다. 🔉 2. 개인 액세스 토큰 Classic 메뉴 선택 및 생성 시작 Developer settings 내부 화면으로 진입했다면 왼쪽 메뉴판에서 Personal access tokens 를 눌러 하위 메뉴를 열어줍니다. 최근 추가된 fine-grained 방식도 있지만, 전통적인 터미널 환경 및 다양한 소스코드 에디터와 호환성이 가장 좋은 Tokens (classic)를 선택합니다. 그다음 오른쪽 상단에...

netstat ano findstr 8080 grep find listening command

   2026년 최신 OS 업데이트 기준(Windows 11 및 macOS Sequoia/Linux)에 맞춘 포트 8080 확인 및 종료 명령어 가이드입니다. OS별 정확한 명령어와 실행 차단 시 해결책을 제공합니다. 웹 개발이나 백엔드 서버를 구동할 때 8080 포트가 이미 사용 중이라는 에러( Address already in use )는 빈번하게 발생합니다. Windows, macOS, Linux 환경에서 현재 8080 포트를 점유하고 있는 프로세스의 PID를 찾고, 이를 강제로 안전하게 종료하는 정확한 명령어를 정리했습니다. Windows 환경에서 8080 포트 확인 및 종료 (CMD / PowerShell) Windows 11 및 Server 환경에서는 netstat 명령어와 findstr 을 조합하여 포트 점유 상태를 조회합니다. 1. 8080 포트 점유 프로세스(PID) 조회 명령 프롬프트(CMD) 또는 PowerShell을 관리자 권한 으로 실행한 후 아래 명령어를 입력합니다. DOS -a : 모든 연결 및 대기 포트를 표시합니다. -n : 주소와 포트 번호를 숫자로 표시하여 탐색 속도를 높입니다. -o : 각 연결에 소유자 프로세스 ID(PID)를 표시합니다. 출력 결과 예시: Plaintext 분석: 상태가 LISTENING 으로 표시되면 현재 포트가 사용 중인 상태이며, 가장 오른쪽 끝에 있는 숫자 14252 가 해당 프로세스의 **PID(프로세스 ID)**입니다. 2. PID 기반 프로세스 이름 확인 (선택 사항) 종료하기 전 어떤 프로그램이 포트를 쓰고 있는지 확인하려면 아래 명령어를 입력합니다. DOS 3. 8080 포트 강제 종료 확인된 PID를 이용해 해당 프로세스를 강제로 종료합니다. DOS /F : 프로세스를 강제로 종료하는 옵션입니다. macOS / Linux 환경에서 8080 포트 확인 및 종료 Unix 계열 OS에서는 lsof 명령어 또는 netstat 대안인 ss 명령어를 사용하는 것이 가장 정...