▶GC란 무엇인가? GC는 자바의 메모리 관리 방법 중 하나이다. JVM의 Heap영역에서 동적으로 할당했던 메모리 영역 중 필요없게 된 메모리 영역을 주기적으로 삭제하는 프로세스이다. C/C++에서는 이러한 GC가 없기 때문에 개발자가 수동으로 메모리 할당과 해제를 일일히 해줘야한다. 이러한 언어를 Unmanaged 언어라고 한다. 반대로 자바같이 GC가 알아서 메모리를 관리해주는 언어를 Managed 언어라고 한다. 따라서, GC가 탑재되어 있는 JVM을 사용하는 Java는 메모리 관리를 다 해주기 때문에 개발자 입장에서는 메모리 관리, 메모리 누수(Memory Leak)문제에 대해 신경을 덜 써도 된다는 장점이 있다. 하지만 단점도 있는데, 개발자가 메모리가 언제 해제되는지 정확하게 알 수 없다. ..
학과 공부
▶배열이 나타난 이유 옛날옛날... 선배님들은 변수를 이용해서 메모리에 값을 할당하고 CPU에게 계산을 시켰다. 하지만 문제가 생겼다. 메모리에 저장해야하는 값이 많아지면서 변수의 수도 많아지게 된것이다. 예를들어 이번 달 사용한 식비를 구하고싶으면 이번달 1일부터 마지막날까지의 식비를 다 더해줘야하므로 대충 30개의 변수가 필요하다. 선배님들은 어떻게 하면 변수를 많이 안쓰고 같은 종류의 데이터를 쉽고 효율적으로 메모리에 저장할 수 있을지를 고민했고, 그렇게 나오게 된 개념이 배열임. ▶배열의 정의와 성질 배열은 같은 종류의 데이터를 모아서 메모리에 순서대로 저장하는 기법이다. 배열은 요소(element)와 인덱스로 구성되어있다. 요소는 배열안에 담겨있는 하나하나의 요소를 말한다. 배열의 성질 k번째 ..
▶자바 프로그래밍을 공부하는 이유 많고 많은 언어 중에 자바를 왜 공부해야 할까? 자바는 백엔드에서 가장 많이 쓰이는 언어이기 때문이다.(Spring Boot) Node.js, Next.js 등 자바스크립트 언어를 기반으로 한 백엔드도 요즘 매우 많지만 자바스크립트보다 자바의 역사가 더 오래되었고 안정성도 더 뛰어나기 때문에 대기업에서 많이 채택한다. ▶자바 언어의 특징 객체지향 언어 자바는 느리지만, 버전업이 되면서 다른 언어들의 장점들을 흡수하고 있다. 람다(Lambda) : 함수형 프로그래밍 Stream API : 람다 표현식과 메서드 참조 등의 기능과 결합해서 매우 복잡하고 어려운 데이터 처리 작업을 쉽게 조회하고 필터링하고 변환하고 처리할 수 있도록 한다. 병렬프로그래밍 : 여려개의 CPU코어에..
▶내가 만든 프로그램. exe 파일로 만들기 ▷1. pyinstaller 설치하기 pip install pyinstaller 명령어를 입력해주면 어쩌고저쩌고 하면서 install이 완료된다. ▷2. exe파일 만들기 pyinstaller -F (파일경로) 이렇게 입력해 주면 어쩌고저쩌고 하면서 이렇게 성공했다고 뜬다. 그러면 폴더 안에 이렇게 build와 dist 파일이 생겼을 것이다. 그 후 dist파일에 들어가 보면 이렇게 exe 파일이 생기게 된다.
▶함수란 무엇인가 함수파트에 들어가기 앞서 함수라는게 무엇인지 알아 볼 필요가 있다. 만약 고등학교 수학을 포기하지 않았다면 수학시간에 함수라는 단어를 들어봤을 것이다. ex) y = 5x+7 프로그래밍에서 함수는 이런 수학에서의 함수의 역할도 할 뿐만 아니라 다양한 역할을 수행한다. 프로그래밍에서의 함수는 인풋이 들어가면 함수 박스를 지나 아웃풋이 나오게되는 형태이다. ▶함수를 사용하는 이유 그렇다면 함수가 뭐가 좋길래 사용할까? 프로그래밍을 해봤다면 똑같은 내용을 반복해서 써줘야하는 경우가 종종 있다는것을 알것이다. 이때 필요한것이 바로 함수이다. 즉, 함수는 반복할만한 가치가 있는 부분을 박스로 묶어서 어떠한 인풋값에 따른 아웃풋 결과를 내놓도록 하는 마법의 박스다. 이러한 마법의 박스를 사용하면 ..
파이썬의 반복문에 대해서 알아보겠다. while문의 기본 구조 while 조건문: 수행할_문장 조건문이 참인 경우, 수행할 문장을 계속해서 반복한다. while문 강제로 빠져나가기 예를 들어 핫도그를 파는 프로그램을 짰다고 해보자. HotDog = 5 while True: money = int(input("돈을 넣어 주세요 : ")) if money == 5000: print("주문하신 핫도그 나왔습니다~ 맛있게 드세요!") HotDog = HotDog-1 elif money > 5000: print("네 %d원 받았고 %d원 거스름돈으로 드릴게요~" %(money, (money-5000))) HotDog = HotDog-1 else: print("핫도그 하나에 5000원입니다~ 지금 핫도그 %d개 남았..