백앤드

🔥해당 글은 프로젝트 팀원과 함께 프로젝트 퀄리티 및 더 나은 개발자가 되기 위하여 북 스터디를 진행하였습니다. 프로그램 초창기에는 시스템을 루틴과 하위 루틴으로 나눴다. 현재 프로그램은 가장 기본적인 단위가 함수이고, 이 장은 함수를 잘 만드는 방법을 소개한다. 작게 만들어라! 함수를 만드는 첫째 규칙은 작게, 둘째 규칙은 더 작게다. 코드의 길이가 짧을수록 이해하기 쉽다. 블록과 들여 쓰기 if문 / else 문/ while 문 등에 들어가는 블록은 한 줄이어야 된다. 대게 함수를 호출하여 처리한다. 바깥은 감싸는 함수가 작아질 뿐 아니라, 블록 안에서 호출하는 함수 이름을 적절하게 짓는다면 코드를 이해하기 쉬워진다. 즉, 중첩 구조가 생길 만큼 함수가 커져서는 안 된다. 그래야 함수를 읽고 이해하기..
🔥해당 글은 프로젝트 팀원과 함께 프로젝트 퀄리티 및 더 나은 개발자가 되기 위하여 북 스터디를 진행하였습니다. 소프트웨어에서 이름은 어디에나 쓰인다. 이 장에서는 이름을 잘 짓는 간단한 규칙을 몇 가지 소개한다. 의도를 분명히 밝혀라 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 그러므로, 이름을 주의 깊게 살펴 더 나은 이름이 떠오르면 개선하는 것이 좋다. 수행 기능 또는 사용 방법을 나타내기 위해 주석이 필요하다면 그건 의도를 분명히 드러내지 못했다는 말이다. 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. 단순히 이름만 고쳐도 함수가 하는 일을 이해하기 쉽다. 이것이 좋은 이름이 주는 위력이다. 그릇된 정보를 피하라 프로그래머는 코드에 그릇된 단..
가끔 단순히 정적 메서드와 정적 필드만을 포함하는 클래스를 만들고 싶을 때가 있습니다. 이는 객체 지향적 사고 방식과는 다소 거리가 있어서 종종 부적절하게 사용되기도 하지만, 특정 상황에서는 유용하게 사용될 수 있습니다. 예를 들어, java.lang.Math나 java.util.Arrays 같은 클래스는 기본 타입 값이나 배열 관련 메서드들을 모아놓는데 사용됩니다. 또한, java.util.Collections 처럼 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드(또는 팩토리 메서드)를 모아놓을 수 있습니다. 이는 자바 8부터 인터페이스에도 가능해졌습니다. 마지막으로, 이러한 방식은 final 클래스와 관련된 메서드들을 모아놓을 때 사용될 수 있습니다. final 클래스는 상속이 불가능하므로,..
싱글턴은 오직 한 번만 인스턴스화 할 수 있는 클래스를 의미합니다. 함수나 시스템 컴포넌트와 같이 설계상 유일하게 존재해야 하는 경우에 사용됩니다. 그러나 이러한 싱글턴 클래스는 테스트하기 어렵다는 단점이 있습니다. 인터페이스를 정의하고 이를 구현하는 방식으로 싱글턴을 사용하면, 싱글턴 인스턴스를 가짜로 대체하는 것이 불가능해집니다. 싱글턴을 만드는 방식은 보통 둘 중 하나입니다. 두 방식 모두 생성자는 private으로 감춰두고, 유일한 인스턴스에 접근할 수 있는 수단ㅇ으로 public static 멤버를 하나 마련해둡니다. public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } publi..
생성자와 정적 팩토리 메서드의 제약 생성자와 정적 팩토리 메서드에는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 제약이 있습니다. 점층적 생성자 패턴 각 생성자의 매개변수 개수를 다르게 만들어, 여러 개의 생성자를 만드는 방식입니다. public class NutritionFacts { private final int servingSize; // (ml, 1회 제공량) 필수 private final int servings; // (회, 총 n회 제공량) 필수 private final int calories; // (1회 제공량당) 필수 private final int fat; // (g/1회 제공량) 필수 private final int sodium; // (mg/1회 제공량) 필수 private..
🔥해당 글은 프로젝트 퀄리티 및 더 나은 개발자가 되기 위하여 북 스터디를 진행했습니다.클린 코드를 읽고 나면 다음과 같은 사실을 배우게 될 것입니다.좋은 코드와 나쁜 코드를 구분하는 능력을 갖춘다.좋은 코드를 작성하는 방법을 익힌다.나쁜 코드를 좋은 코드로 바꾸는 실력도 쌓는다.코드가 존재하리라코드의 종말이 코앞에 닥쳐, 코드를 자동으로 생성하는 시대가 온다고 한다. - 챗 지피티..? 코파일럿..?그러나, 코드는 요구사항을 상세히 표현하는 수단이다. [프로그래밍]결국은 자동으로 생성하려고 해도 그거에 관한 명세서도 코드일 수 밖에 없다.궁극적으로 코드는 요구사항을 표현하는 언어다.나쁜 코드회사가 망한 원인은 바로 나쁜 코드 탓80년대 후반 킬러 앱 하나를 구현한 회사는 나쁜 코드로 인한 버그로 인해..
보통의 개발자들은 HotSpot JVM을 주로 사용합니다. Java 언어와 함께 개발 및 배포되며, Java SE 개발 키트를 다운로드하면 HotSpot JVM이 자동으로 설치됩니다. HotSpot JVM의 주요 특징 HotSpot JVM은 말 그대로 Hot한 Spot을 찾아서 해당 부분에서는 JIT 컴파일러를 사용하는 방법이다. JIT 컴파일러 Hotspot JVM은 JIT(Just-In-Time) 컴파일러를 사용하여 바이트 코드를 런타임에 네이티브 코드로 변환합니다. 실행 시점에 코드를 컴파일하여 빠르게 실행할 수 있도록 최적화하는 기능을 제공합니다. 내부적으로 프로파일링을 통해 핫스팟을 찾아내고, 해당 부분에 대한 네이티브 코드를 생성한다. 네이티브 코드를 생성하는 방법에서 Client와 Serve..
JRE, JDK, JVM 소개 JRE JRE는 Java Runtime Environment의 약자로 자바 런타임 환경이라는 뜻입니다. JRE는 Java 프로그램을 실행하기 위해 필요한 환경을 제공하며, 이는 JVM과 Java 클래스 라이브러리를 포함하고 있습니다. JRE만 설치되어 있다면 Java 프로그램을 실행할 수 있지만, 개발은 할 수 없습니다. JDK JDK는 Java Development Kit의 약자로 자바 개발 키트라는 뜻입니다. JDK는 개발자가 Java 프로그램을 개발하기 위해 필요한 도구 모음입니다. 이는 JRE, Javac(자바 컴파일러), jar(라이브러리), jdb(디버깅), apt(애노테이션) 등 자바로 개발할 수 있도록 여러 기능들을 제공하는 역할을 합니다. JVM JVM은 J..
🚀 자바 코드를 작성할 때 주의해야 할 점자바는 강력한 언어지만, 잘못 사용하면 성능 저하, 메모리 누수, 보안 취약점 같은 문제가 발생할 수 있습니다. 안정적이고 효율적인 자바 코드를 작성하기 위해 다음과 같은 주의할 점들을 고려해야 합니다.⚠️ 예외 처리자바에서 예외 처리는 필수입니다. 예외가 발생할 수 있는 코드는 try-catch 블록을 적절하게 처리해야 합니다. 예외를 무시하거나 단순히 로그만 남기고 끝내면 예상치 못한 종료나 데이터 손실이 발생할 수 있습니다.try { // 위험한 코드 실행} catch (IOException e) { // 구체적인 예외 처리} catch (Excetpion e) { // 일반적인 예외 처리}구체적인 예외 처리 : 모든 예외를 포괄하는 cat..
☕️ 자바란 무엇인가?자바는 1995년 썬 마이크로즈시스템에서 공식적으로 발표한 객체 지향 프로그래밍 언어입니다.현재는 오라클이 자바를 관리하고 있으며, 전 세계에서 가장 많이 사용되는 프로그래밍 언어 중 하나입니다.✨ 자바의 가장 큰 장점 : 이식성자바는 다양한 운영체제(Windows, macOS, LInux 등)에서 "한 번 작성하면 어디서나 실행할 수 있다"라는 철학을 실현합니다. 이것은 가상 머신(Virtual Machine, JVM)을 통해 가능합니다. 또한, 풍부한 클래스 라이브러리(Java API)를 기본적으로 제공해 복잡한 기능도 쉽게 구현할 수 있습니다."한 번 작성하면 어디서나 실행할 수 있다.📜 자바의 역사자바의 역사는 1991년 제임스 고슬링과 그의 팀이 오크(Oak)라는 이름의 ..