자바 기본에 대해서 질문합니다.
자바에서 지역변수와 전역변수를 구분하는 이유가 무엇인가요?
나이 먹고 학원에서 프로그래밍을 시작하고있는데, 기본 자바도 어렵네요.
동영상으로 강의 추천 해줄 영상있으면 추천도좀 해주세요.
감사합니다.
안녕하세요 현직 안드로이드 자바 앱 개발자 홍드로이드 라고 합니다 .
질문 주신 지역변수와 전역변수의 차이라고 함은.
일단 전역은 말 그대로 전체 영역을 의미 합니다. 클래스 내 어디서든지 접근 가능하여 변수에 대해 값을 할당하거나 제거하거나
수정이 가능 합니다. 반대로 지역변수는 ( ) 와 { } 같은 내부 스코프 영역에서만 활동 되는 녀석입니다.
그래서 그 스코프 영역에서만 활용되다가 괄호 끝 부분 이후에는 활용이 끝나서 사라지게 되는 녀석입니다.
같은 변수 라고는 하지만 그래도 각자의 역할들이 있기 때문에 이러한 개념들은 개발자에게도 코드 흐름의 이해도를 높여줍니다.
전역 변수가 선언 되어 있다구 하면 그 녀석은 하나의 스코프 내에서만 사용되는 것이 아니구나 인걸 알 수 있고,
지역변수는 아 이 스코프 내에서만 활용되고 사라질 녀석 인거 구나 할 수 가 있게 되는거죠.
안녕하세요.
자바뿐만 아니라 모든 프로그래밍에서 전역변수와 지역변수가 사용이 됩니다.
지역변수는 해당 메소드안에서 선언하게 되면 그 메소드 안에서만 사용이 가능합니다. 다른 메소드에서는 사용이 불가능하죠. 반면에 전역변수로 선언하게되면 모든 메소드에서 사용이 가능하게 되는 것입니다.
인터넷이나 유튜브 검색해 보면 자료가 많이 나와 있습니다. 아래 사이트 참고하시길 바랍니다.
[기초강의]
https://youtube.com/playlist?list=PLU9-uwewPMe0ynomccdrAX2CtVbahN4hD[인프런-유무료강의]
https://www.inflearn.com[자바]
https://www.youtube.com/playlist?list=PLuHgQVnccGMCeAy-2-llhw3nWoQKUvQck일단 지역변수와 전역변수를 구분해야 메모리를 아낄 수 있습니다.
프로그램 규모가 커지게 되면 전역변수의 수가 적은게 좋겠죠. 특정 영역에만 사용되는 지역변수와 달리 전역변수는 일단 메모리에 계속 가지고 있어야하니까요. 그 외에도 자바에서 private, default, public 등으로 접근 가능 범위 설정을 하실 텐데요. 보안 목적을 위해서 지역 변수를 사용하는 경우도 있습니다.
자바 뿐만 아니라 전역 변수 / 지역 변수는 모든 언어에서 구분합니다.
변수는 메모리이고 메모리는 한정되어있기 때문에 효율적으로 사용해야 합니다.
지역 변수는 유효범위가 끝나면 메모리에서 해제됩니다.
하지만 전역 변수는 어디에서든 쓸 수 있습니다.
무료 강의는 아래의 nomad 강의를 추천드립니다.
https://nomadcoders.co/python-for-beginners
아쉽게도 자바는 없습니다.
하지만 기본 자바가 어렵다는 것은 아직 기본 컴퓨터 사고가 부족하기 때문이라고 생각됩니다.
파이썬으로 웹 스크래퍼를 만들어 보시면서 로직을 쌓으면 기본 자바에도 도움이 될 겁니다.
일단 자바라는 언어의 틀을 떠나서 컴퓨터 공학에서는 모듈(module)이라는 개념을 먼저 이해하시면 도움이 될 것 같습니다. 참고로 모듈이라는 개념는 레이어(Layer), 티어(Tier)라는 이름과도 같은 개념입니다.
기술적으로 모듈화하는 가장 주된 이유는 인지적 과부하(cognitive overload) 때문입니다.
만약 C언어를 해보셨다면 함수라는 것을 접했을 것인데 이 함수도 일종의 모듈화를 달성하는 방법 중 하나입니다. 함수를 사용하게 되면 세부적인 구현의 내용을 몰라도 전달되는 인자, 반환 값 등의 적은 기억만으로도 사용이 가능합니다.자바의 경우는 객체지향 패러다임을 따르는 언어입니다. 객체지향의 3대 요소중에 캡슐화(Encapsulation)라는 것이 있습니다. 크게 "관련된 것들을 하나로 모은다" 즉 응집성(coherence)과 "캡슐 내부에 들어 있는 것들은 외부와 분리된다."의 결합도(coupling)의 관점으로 요약할 수 있습니다.
지역변수와 전역변수를 구분한다고 하셨지만 자바에는 전역변수라는 명세가 된 것은 따로 없습니다.
물론 클래스의 public static 변수를 정적 변수처럼 사용할 수는 있습니다.하지만 전역변수를 사용하게 될 경우 변경시에 참조하고 있는 부분에 대한 광범위한 영향도를 알고 부작용이 있는지를 미리 판단해야 할 것 입니다. 위에 처음 이야기 했던 인지적 과부하가 높아지게 됩니다.
만약 클래스 내부에 존재하는 변수이고 외부에 노출이 안되어 있다면 클래스 내부만 확인해보면 되기에 전역 변수에 비해 바꾸기에 편해질 것입니다.
안녕하세요. 개발 3년차 직장인입니다.
일단 간단하게 설명을 드리자면,
지역변수와 전역변수를 구분을 해야지
프로그램을 짤때는 많은 변수를 쓰게되는데.
지역변수와 전역변수를 구분해놓지 않으면
이게 엄청 헷갈ㄹㅕ요....
이게 여기서 쓰는 변수였나? 이렇ㄱㅔ되서 구분을 잘해둬야됩니다!!
안녕하세요.
지역변수는 선언되어있는 해당메소드 내에서만 사용하는 변수이구요.
전역변수는 해당 클래스 혹은 패키지 내에서 사용될수있는 변수입니다.
보통 메모리 문제로 인하여, 여러 클래스에서 필요한 값이 아니고, 하나의 메소드안에서만 쓰이는 변수라면 지역변수를 사용하는것을 권장합니다.
안녕하세요.
지역변수, 전역변수는 java 뿐만 아니라 다른 언어에서도 사용합니다.
두 변수의 차이점은 유효 범위가 다르다는 것인데, 프로그래밍을 하다 보면
어떠한 영역 (메소드) 안에서만 사용하는 변수가 있고, 다른 영역과 공유해야 하는 변수가 있습니다.
전자는 지역변수를 사용하고, 후자는 전역변수로 사용합니다.
대부분 지역변수를 사용하고, 전역변수는 주의해서 사용할 필요가 있습니다.
전역변수의 경우 말그대로 해당 프로그램에서 어디서든 접근 할 수 있는 변수라고 볼수 있습니다.
그렇다보니 프로그램 전체에서 사용하는 변수의 경우 전역변수로 선언하기도 합니다.
전역변수를 너무 많이 사용하게되면 메모리 문제도 있지만 여기저기서 접근해서 값을 바꿀수 있기 때문에 데이터에 대한 신뢰도가 떨어지기도 합니다.
안녕하세요. A-HA 프로그래밍 전문가입니다.
전역 변수는 클래스 단위로 선언, 지역 변수는 매서드 단위도 선언이라고 보시면 됩니다.
초보자 분들에게 가장 추천하는 언어는 C와 자바, 그리고 파이썬입니다. 여기서 현업에서 가장 많이 사용되는 언어는 자바와 파이썬으로 보통 백엔드에서 사용됩니다. 그 이유는 API도 많고, 범용성도 높기 때문입니다.
자바는 객체지향 언어, 파이썬은 스크립트 언어라는 특성을 가지고 있습니다. 저는 처음 공부를 시작하신다면 자바를 더 추천합니다.