안녕하세요. 명지대학교 정보통신공학과 코딩동아리 '바코드'
멘토링 클래스 'GitJav ' 멘토 Thingk0 입니다.

먼저, 멘토링에 들어가기에 앞서 멘티분들의 간단한 테스트와 필요한
소프트웨어들을 설치 및 세팅하고 기초적인 개념설명을 할 예정입니다.
1. 몸풀기 기초 CS 테스트
https://forms.gle/qbdLbzw3tmtYHog97
GitJav 1기 - 미니 테스트
본 미니 테스트는 'GitJav 1기' 멘티분들의 컴퓨팅 능력을 간략하게 테스트해보기 위한 목적으로 이후에 아무런 불이익이 존재하지 않기 때문에 마음 편하게 본인이 아는 만큼 테스트에 응해주시
docs.google.com
2. Git 설치 및 Github 가입하기
Git - Downloads
Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp
git-scm.com
[Git] 윈도우10(window 10) 깃(Git) 설치하기 - Git 기초(0.5)
윈도우 10(Window 10) 깃(Git) 설치하기 1. Git 설치 파일 다운로드 윈도우 10에서 깃은 공식 홈페이지에서 다운로드할 수 있다. https://git-scm.com/downloads Git - Downloads Downloads macOS Windows Linux/Unix Older releases
code-lab1.tistory.com
맥북(mac OS) 깃(Git) 설치하기
맥북(macOS)에 깃(Git) 설치하기 MacOS에 깃을 설치하기 위해서는 먼저 homebrew를 설치해야 한다. 아래 사이트에 접속하면 homebrew를 설치할 수 있다. https://brew.sh/ Homebrew The Missing Package Manager for macOS (or
code-lab1.tistory.com
3. 인텔리제이 설치하기
https://www.jetbrains.com/idea/
IntelliJ IDEA – the Leading Java and Kotlin IDE
IntelliJ IDEA is undoubtedly the top-choice IDE for software developers. It makes Java and Kotlin development a more productive and enjoyable experience.
www.jetbrains.com
인텔리제이(IntelliJ)는 JetBrains사에서 개발한 Java 언어용 통합 개발 환경(IDE)입니다.
Java뿐만 아니라 Kotlin, Groovy, Scala, Android, Java EE 등의 다양한 언어와 프레임워크를 지원하며, 코드 작성, 디버깅, 테스트, 빌드, 배포 등의 기능을 제공합니다.
인텔리제이는 다양한 편의 기능을 제공하여 개발자의 생산성을 높여줍니다.
예를 들어, 코드 자동 완성, 코드 검사 및 수정, 리팩토링 도구, 디버깅, 단위 테스트, Git과 같은 버전 관리 시스템과의 통합 등이 있습니다. 또한, 다양한 플러그인을 제공하여 사용자가 필요한 기능을 추가하거나 커스터마이징할 수 있습니다.
인텔리제이는 무료 커뮤니티 버전과 유료 얼티밋 버전이 있습니다. 커뮤니티 버전은 대부분의 개발 작업을 수행하는 데 필요한 기능을 제공하지만, 얼티밋 버전은 보다 고급 기능과 도구를 제공합니다.
그리고 저희는 대학생 신분으로 JetBrains 사에서 학생 및 교육 기관을 위한 무료 라이센스 프로그램인 JetBrains 학생 라이선스를 제공하기 때문에 IntelliJ IDEA를 비롯한 모든 JetBrains IDE를 포함하며, 대학생, 대학원생, 교사 및 교육자에게 무료로 제공받을 수 있으므로 얼티밋 버전을 사용할 예정입니다.

버전 관리, 코드 백업, 팀 협업



Git을 사용하지 않으면 다음과 같은 문제가 발생할 수 있습니다.
- 코드 충돌
여러 명의 개발자가 동시에 동일한 파일을 수정하는 경우, 충돌이 발생할 수 있습니다. 충돌이 발생하면, 코드를 통합하기 위해 시간이 많이 소요됩니다. 또한, 충돌이 발생할 경우, 어떤 코드가 유지될지를 결정하기 위한 의사 결정이 필요합니다. - 코드 누락
Git을 사용하지 않으면, 코드를 저장하거나 백업하지 않을 가능성이 높습니다. 이 경우, 코드를 잃어버리는 등의 문제가 발생할 수 있습니다. - 변경 이력 추적의 어려움
Git을 사용하지 않으면, 코드의 변경 이력을 추적하기 어렵습니다. 따라서, 이전 버전의 코드를 확인하거나, 코드를 수정하기 전으로 돌아가는 등의 작업이 어렵습니다. - 협업의 어려움
여러 개발자가 동시에 코드를 수정하는 경우, Git을 사용하지 않으면, 어떤 부분이 변경되었는지 파악하기 어렵습니다. 따라서, 협업이 어려워집니다.
이러한 문제를 해결하기 위해 Git과 같은 형상 관리 시스템을 사용하는 것이 좋습니다. Git을 사용하면, 코드 충돌, 코드 누락, 변경 이력 추적, 협업 등 다양한 문제를 해결할 수 있습니다.
So how do you do that??


Git은 편리하게 GUI로도 사용이 가능하지만 저희는 다음과 같은 이유들로 CLI 로 Git을 배우고 사용할 것 입니다.
- 더 많은 기능을 사용할 수 있습니다.
Git CLI를 사용하면 Git의 모든 기능을 사용할 수 있습니다. 데스크탑 애플리케이션보다 더 많은 기능이 제공되기 때문에 Git을 더욱 다양하게 사용할 수 있습니다. - 더 높은 자유도를 가질 수 있습니다.
Git CLI를 사용하면, 자신이 원하는 대로 Git을 조작할 수 있습니다. 데스크탑 애플리케이션에서는 사용할 수 없는 커맨드를 이용할 수 있으며, Git의 높은 유연성을 살릴 수 있습니다. - 더 나은 성능을 얻을 수 있습니다.
Git CLI는 데스크탑 애플리케이션보다 더 빠른 속도를 제공합니다. 이는 CLI가 그래픽 사용자 인터페이스(GUI)보다 더 효율적이기 때문입니다. - 다른 컴퓨터에서 Git을 사용할 때도 사용이 가능합니다.
Git CLI는 모든 운영 체제에서 작동하기 때문에 다른 컴퓨터에서도 Git을 사용할 수 있습니다. 또한, SSH를 이용하여 Git 서버에 접속하여 Git을 사용할 수 있습니다. - CLI를 이용하면 스크립팅이 가능합니다.
스크립트를 작성하면 Git을 더욱 쉽게 다룰 수 있습니다. 이는 자동화와 배치 처리 등에 유용합니다.
- 사용자 정보 설정
Git을 사용하기 위해서는 사용자 정보를 등록해야 합니다. 이는 커밋에 작성자 정보를 함께 저장하기 위해서입니다.
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
- 기본 에디터 설정
Git은 커밋 메시지를 작성하기 위해서 기본 에디터를 사용합니다. 만약 별도의 에디터를 사용하고 싶다면, 아래와 같이 설정할 수 있습니다.
git config --global core.editor "vim"
- Github
GitHub는 분산 버전 관리 시스템인 Git을 사용하는 웹 호스팅 서비스입니다. 개발자들이 코드를 공유하고 관리하기 위해 사용되며, 다양한 프로젝트를 호스팅 하고, 협업과 개발을 위한 다양한 기능을 제공합니다.
- 코드 공유: 개발자들은 코드를 공유하고, 다른 개발자들의 코드를 확인하고, 이를 Fork 하여 개선 및 수정할 수 있습니다.
- 버전 관리: 이전 버전으로 돌아가거나, 다른 개발자의 코드를 병합하는 등 다양한 작업을 수행할 수 있습니다.
- 이슈 관리: 개발자들은 버그를 신고하거나, 기능 개선을 제안하거나, 진행 상황을 확인하는 등의 작업을 수행할 수 있습니다.
- 협업: 코드 리뷰, Pull Request, 커뮤니케이션 도구 등을 활용하여 개발자들 간의 협업을 원활하게 할 수 있습니다.
GitHub: Let’s build from here
GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...
github.com
Thingk0 - Overview
I hope you are happier today than yesterday 🤍. Thingk0 has 11 repositories available. Follow their code on GitHub.
github.com
참고용! 제 깃허브 프로필입니다.

- 자바(Java)
자바(Java)는 객체 지향 프로그래밍 언어입니다. James Gosling과 Sun Microsystems에서 개발되었으며, 현재는 Oracle Corporation이 관리하고 있습니다.
자바는 플랫폼 독립적인 특징을 가지고 있습니다. 즉, 자바 프로그램은 어떤 운영 체제에서도 실행될 수 있습니다. 이는 자바의 가상 머신(Java Virtual Machine, JVM) 덕분입니다.
또한 자바는 안정적이고 보안성이 높은 언어로 알려져 있습니다. 메모리 관리를 자동으로 처리하므로 개발자가 메모리 누수 등의 문제를 걱정하지 않아도 됩니다.
또한 자바는 예외 처리가 잘 되어 있어 안정성이 높습니다. 자바는 웹 어플리케이션, 모바일 어플리케이션, 게임, 응용 프로그램 등 다양한 분야에서 사용되고 있습니다. 또한 다양한 프레임워크와 라이브러리가 존재하여 개발을 보다 쉽고 빠르게 할 수 있습니다.
- 자바의 종류
- Java SE(Java Standard Edition / J2SE)
: 대부분의 사람들이 가장 많이 접하는 표준 에디션. Java의 핵심 API와 기능들을 제공한다. JDK 항목도 참고.
- Jakarta EE, 구 Java EE(Java Enterprise Edition / J2EE)
: 기업에서 운영하는 서버 페이지에 특화된 에디션이다. JSP와 서블릿을 비롯한 웹 애플리케이션 서버에 관련된 기술들이 포함되어 있다.
- Java ME(Java Micro Edition / J2ME)
: 피처폰, PDA, 셋톱박스, 센서 등의 임베디드 시스템 환경에 특화된 경량 에디션이다.
- 자바의 특징

Java의 가장 큰 특징은 플랫폼에 독립적인 언어라는 점이다. 소스 코드를 기계어로 직접 컴파일하여 링크하는 C/C++의 컴파일러와 달리 자바 컴파일러는 바이트코드인 클래스 파일(. class)을 생성하고, 이 파일의 바이트코드를 읽은 뒤 기계어로 바꾸어 실행하는 것은 자바 가상 머신이다.
예를 들어 플랫폼에 종속된 경우 윈도우에서 빌드한 프로그램을 그대로 리눅스나 macOS에서 실행하려 하면 일반적으로 오류가 나지만 Java로 작성된 프로그램은 플랫폼에 맞는 Java Runtime Environment만 설치되어 있다면 문제없이 동작한다. 이는 Java 코드 자체가 플랫폼이 아닌 가상머신에 종속적이라는 점, 그리고 프로그램 실행의 주체가 운영 체제가 아닌 Java Runtime Environment이라는 점 때문이며 이러한 점을 통틀어 Java는 플랫폼 종속성이 낮은 언어라고 표현한다.
실제 현업에서는 Java를 비롯한 여러 가지 인기 언어가 자주 사용되므로 장단점을 잘 알아두는 게 좋다. 다른 언어에 대해 맹목적으로 찬양/비판하는 태도보다는 환경이나 주어진 작업의 특성에 따라 적합한 언어를 선택할 수 있는 노하우가 필요하다.
출처: 나무위키 https://namu.wiki/w/Java
JDK(Java Development Kit)는 Java 언어로 소프트웨어를 개발하기 위해 필요한 도구들을
포함하는 소프트웨어 개발 환경입니다. Java 컴파일러, Java 런타임 환경, Java 클래스 라이브러리 등이 포함되어 있고
Java 언어를 사용하여 개발된 소프트웨어를 컴파일하고 실행하기 위한 환경을 제공합니다.
Java 컴파일러는 Java 소스 코드를 바이트 코드로 변환하여 실행할 수 있는 형태로 만들어줍니다.
또한, Java 런타임 환경은 컴파일된 바이트 코드를 실행하고,
클래스 라이브러리는 개발자가 자주 사용하는 기능들을 미리 구현해 놓은 라이브러리를 제공합니다.

- 자바의 메모리구조
Java는 가비지 컬렉션(Garbage Collection)을 사용하여 메모리 관리를 합니다.
Java 가상 머신(Java Virtual Machine, JVM)은 메모리를 크게 세 영역으로 나누어 관리합니다.

- 힙(Heap) 영역:
객체 인스턴스가 저장되는 영역입니다. 힙 영역은 프로그램이 실행 중에 동적으로 메모리를 할당하고 해제합니다. 객체가 생성될 때는 힙 영역에 메모리 공간이 할당되고, 가비지 컬렉션에 의해 사용되지 않는 객체는 자동으로 해제됩니다. - 스택(Stack) 영역:
지역 변수, 매개변수, 메서드 호출 등의 정보를 저장하는 영역입니다. 스택 영역은 메서드 호출 시 메모리를 할당하고, 메서드 종료 시 메모리를 해제합니다. 이때 스택에 저장된 변수의 값도 함께 제거됩니다. - 메서드 영역(Method Area) 또는 클래스 영역(Class Area):
클래스 정보와 클래스 변수(static 변수)가 저장되는 영역입니다. 클래스 로더에 의해 읽힌 클래스들의 정보가 저장됩니다.
각 영역의 크기는 JVM 구현체에 따라 다를 수 있습니다. 또한, 힙 영역은 Young, Old, Permanent 세 영역으로 더 세분화될 수 있습니다. 이러한 메모리 구조는 Java 가상 머신이 자동으로 메모리를 관리하여 프로그래머가 직접 메모리를 할당하고 해제하는 과정을 줄여줍니다.
public class Welcome {
public static void main(String[] args) {
System.out.println("자바를 시작하는 여러분들을 환영합니다!");
}
}
추가로, 멘토링 클래스를 조금 더 활성화시키고자 깃잡 로고를 제작했습니다.



'🏄🏻♂️ : activity' 카테고리의 다른 글
| GitJav 멘토링: Java 기초 문법 총정리 및 Git 사용법 ep.4 (0) | 2023.05.17 |
|---|---|
| GitJav 멘토링: JAVA 배열, 클래스, 객체, 인터페이스, 상속 ep.3 (0) | 2023.05.03 |
| GitJav 멘토링: 자바 프로젝트 생성 및 구조, 조건문과 반복문 ep.2 (0) | 2023.04.19 |
| GitJav 멘토링: 자바의 변수와 자료형, 연산자 ep.1 (0) | 2023.04.12 |
| '바코드 동아리' 멘토링 클래스: GitJav 1기 - 프롤로그 (0) | 2023.04.03 |