전체 글

Java 기본 및 핵심 개념컴파일 언어와 인터프리터 언어에 대해 설명해 보세요.컴파일 언어와 인터프리터 언어는 프로그램 코드를 어떻게 실행하는지에 따라 구분됩니다.컴파일 언어는 컴파일러를 사용하는 언어에서 전체 코드가 한 번에 컴파일되어 실행 파일을 생성합니다. 생성된 이 실행 파일은 다른 컴퓨터에서 컴파일러나 소스 코드가 없어도 실행될 수 있습니다. 장점으로는 일반적으로 실행 속도가 더 빠를 수 있으나, 단점으로는 전체 코드가 컴파일되기 때문에 오류를 발견하기 위해 전체 컴파일 과정을 거쳐야 해서 디버깅이 복잡할 수 있고, 한 번 생성된 실행 파일은 특정 OS나 플랫폼에 종속적입니다. 대표적으로 컴파일 언어로는 자바와 C 그리고 C++이 있습니다.그리고 인터프리터 언어는 코드가 한 줄씩 읽히면서 바로 ..
컴파일 언어, 인터프리터 언어 자바의 컴파일 언어와 인터프리터 언어의 특징을 모두 갖는 이유는 자바가 플랫폼 독립적인 언어이기 때문입니다. 자바 컴파일러는 소스 코드를 바이트 코드로 변환하므로, 한 번 작성한 코드를 다양한 운영체제에서 실행할 수 있습니다. 또한, 인터프리터 언어의 장점으로는 소스 코드를 작성한 후 즉시 실행할 수 있으므로 개발자가 빠르게 결과를 확인할 수 있습니다. 자바는 컴파일 언어와 인터프리터 언어의 특징을 모두 가지고 있는 하이브리드 언어입니다. 자바는 컴파일 언어와 인터프리터 언어의 장단점을 모두 가지고 있기 때문에, 개발자가 프로젝트의 요구사항에 맞게 선택할 수 있습니다. 컴파일 언어 컴파일러는 고급 언어로 작성된 소스 코드를 저급 언어로 번역하는 프로그램을 가리킨다. 컴파일 ..
2023.07.24 - [프로젝트 [Project]/협업 [Communication]] - 회의록 템플릿 V.01 회의록 템플릿 V.01 현재 프로젝트를 진행하며 사용하기 위해 작성한 회의록 템플릿입니다. 너무 간단하게 만들어서 민망한 수준이지만 템플릿 보시고 괜찮다고 생각하신 분들은 자유롭게 사용해 주셔도 괜찮습니 gyunny.tistory.com 회의를 진행하다 보니 원활한 진행이 되질 않아 팀원들의 피드백을 받고 내용 추가 했어요 ^-^ 그럼에도 불구하고 더 좋은 방향성 및 개선점이 보인다면 언제든 피드백 주시면 감사하겠습니다. 현재 프로젝트를 진행하며 사용하기 위해 작성한 회의록 템플릿입니다. 너무 간단하게 만들어서 민망한 수준이지만 템플릿 보시고 괜찮다고 생각하신 분들은 자유롭게 사용해 주셔도 ..
🔥해당 글은 프로젝트 팀원과 함께 프로젝트 퀄리티 및 더 나은 개발자가 되기 위하여 북 스터디를 진행하였습니다. 나쁜 코드 나쁜 코드에 주석을 달지 마라. 새로 짜라 경솔하고 근거 없는 주석은 코드를 이해하기 어렵게 만든다. 오래되고 조잡한 주석은 거짓과 잘못된 정보를 퍼뜨려 피해를 준다. 좋은 코드 잘 달린 주석은 그 어떤 정보보다 유용하다. 코드만이 정확한 정보를 제공하는 유일한 출처다. 프로그래밍 언어를 잘 사용해 의도를 표현할 능력이 있다면, 주석은 거의 필요하지 않다. 코드만이 자기가 하는 일을 진실되게 말한다. 코드만이 정확한 정보를 제공하는 유일한 출처다. 그러므로 주석을 가능한 줄이도록 꾸준히 노력해야 한다. 주석은 나쁜 코드를 보완하지 못한다 코드에 주석을 추가하는 일반적인 이유는 코드 ..
현재 프로젝트를 진행하며 사용하기 위해 작성한 회의록 템플릿입니다. 너무 간단하게 만들어서 민망한 수준이지만 템플릿 보시고 괜찮다고 생각하신 분들은 자유롭게 사용해 주셔도 괜찮습니다. ^ ^ ✅ 온도 체크 회의를 진행하기 전에 온도 체크를 통해 팀원들의 컨디션 및 아이스브레이킹 시간을 가져줘요. 📢 공유 사항 회의 전 미리 공유 사항 공지 / 회의 참석 전 주제 선정 및 브레인스토밍 회의 시작 전 공유 사항을 미리 작성해서 팀원들에게 주요 안건에 대해 미리 공지해 주면 좋아요! 회의 참석 전에 주제 선정 및 브레인스토밍 시간 가져줍니다. 원활한 회의 진행을 위해 공유 사항은 미리 슬랙 또는 기타 툴을 통해 공지해 주세요 ㅠ ㅠ 🗣️논의할 주제 금일 논의할 주제 선정 각 팀 및 팀원 별로 논의할 주제를 선..
🔥해당 글은 프로젝트 팀원과 함께 프로젝트 퀄리티 및 더 나은 개발자가 되기 위하여 북 스터디를 진행하였습니다. 프로그램 초창기에는 시스템을 루틴과 하위 루틴으로 나눴다. 현재 프로그램은 가장 기본적인 단위가 함수이고, 이 장은 함수를 잘 만드는 방법을 소개한다. 작게 만들어라! 함수를 만드는 첫째 규칙은 작게, 둘째 규칙은 더 작게다. 코드의 길이가 짧을수록 이해하기 쉽다. 블록과 들여 쓰기 if문 / else 문/ while 문 등에 들어가는 블록은 한 줄이어야 된다. 대게 함수를 호출하여 처리한다. 바깥은 감싸는 함수가 작아질 뿐 아니라, 블록 안에서 호출하는 함수 이름을 적절하게 짓는다면 코드를 이해하기 쉬워진다. 즉, 중첩 구조가 생길 만큼 함수가 커져서는 안 된다. 그래야 함수를 읽고 이해하기..
🔥해당 글은 프로젝트 팀원과 함께 프로젝트 퀄리티 및 더 나은 개발자가 되기 위하여 북 스터디를 진행하였습니다. 소프트웨어에서 이름은 어디에나 쓰인다. 이 장에서는 이름을 잘 짓는 간단한 규칙을 몇 가지 소개한다. 의도를 분명히 밝혀라 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 그러므로, 이름을 주의 깊게 살펴 더 나은 이름이 떠오르면 개선하는 것이 좋다. 수행 기능 또는 사용 방법을 나타내기 위해 주석이 필요하다면 그건 의도를 분명히 드러내지 못했다는 말이다. 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. 단순히 이름만 고쳐도 함수가 하는 일을 이해하기 쉽다. 이것이 좋은 이름이 주는 위력이다. 그릇된 정보를 피하라 프로그래머는 코드에 그릇된 단..
[아이템 7] 다 쓴 객체 참조를 해제하라 메모리 관리 자바처럼 가비지 컬렉터를 갖춘 언어를 사용하면 다 쓴 객체를 알아서 회수해주기 때문에 훨씬 편해집니다. 메모리 관리에 더 이상 신경 쓰지 않아도 된다고 오해할 수 있는데, 사실이 아닙니다. 메모리 누수가 일어나는 위치는 어디인가? 다음은 스택을 간단히 구현한 코드입니다. public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Obje..
클래스가 내부적으로 하나 이상의 자원에 의존하고, 그 자원이 클래스 동작에 영향을 준다면 정적 유틸리티 클래스와 싱글턴과 는 사용하지 않는 것이 좋습니다. 이 자원들을 클래스가 직접 만들게 해서도 안되며, 그 대신 필요한 자원을 생성자에 넘겨주는 것이 바람직합니다. 의존 객체 주입을 통해 클래스의 유연성, 재사용성, 테스트 용이성을 개선할 수 있습니다. 정적 유틸리티 클래스를 사용하여 구현 public class SpellChecker { private static final Lexicon dictionary = ...; private SpellChecker() {} // 객체 생성 방지 public static boolean isValid(String word) { ... } public static ..
가끔 단순히 정적 메서드와 정적 필드만을 포함하는 클래스를 만들고 싶을 때가 있습니다. 이는 객체 지향적 사고 방식과는 다소 거리가 있어서 종종 부적절하게 사용되기도 하지만, 특정 상황에서는 유용하게 사용될 수 있습니다. 예를 들어, java.lang.Math나 java.util.Arrays 같은 클래스는 기본 타입 값이나 배열 관련 메서드들을 모아놓는데 사용됩니다. 또한, java.util.Collections 처럼 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드(또는 팩토리 메서드)를 모아놓을 수 있습니다. 이는 자바 8부터 인터페이스에도 가능해졌습니다. 마지막으로, 이러한 방식은 final 클래스와 관련된 메서드들을 모아놓을 때 사용될 수 있습니다. final 클래스는 상속이 불가능하므로,..
규니95
Gyunny