Programming(37)
-
[Java] Lambda Expression
1. 익명 내부 클래스자바는 객체 지향 언어이기에 코드 작성 도중 인터페이스(IF)를 즉석에서 구현해서 쓰고 싶어도 억지로 클래스 껍데기를 만들어서 써야 했음. 이게 바로 익명 내부 클래스임.자바는 함수 단독으로 존재할 수 없는 언어이기에, 모든 함수는 반드시 클래스 안에 있는 메서드여야만 했음// Runnable: "실행할 수 있는 기능"을 가진 인터페이스Thread t = new Thread(new Runnable() { @Override public void run() { System.out.println("이 코드 한 줄 실행하려고..."); } });시스템에서 System.out.println(”..”)을 실행하기 위해 인터페이스를 구현한 이름 없는 클..
2025.12.13 -
클린코드
개발을 진행하다 보면, 그리고 면접을 진행하다 보면 협업을 위해 클린코드 개념을 물어보는 경우가 종종 있었다. 이때 손 코딩을 통해 클린 코드로 잘못된 부분을 찾는 경우도 존재했기에 이러한 상황을 대비해서 다시 한번 클린 코드에 대해 정리하고자 한다. 클린코드란?소프트웨어 개발 분야에서 매우 중요하게 다뤄지는 개념이며 목적은 아래와 같다.이해하기 쉽고, 수정하기 쉬운 코드컴퓨터가 이해할 수 있는 코드를 짜는 것은 누구나 할 수 있지만, 사람(동료 개발자 혹은 미래의 나)이 이해할 수 있는 코드를 짜는 것이 바로 클린 코드의 핵심이다.개발을 하다 보면 코드를 작성하는 시간보다 코드를 읽고 파악하는 시간이 압도적으로 많다. 그렇기에 클린코드는 이러한 읽는 시간을 단축하는데 도움이 되는 지침서의 역할이다.가독..
2025.12.13 -
자바 심화 및 자료구조
자바 문법을 배울 때 우리는 단순히 "이렇게 쓰면 된다"라고 넘어가곤 한다. 하지만 실제 운영 환경에서 HashMap의 데이터가 조회되지 않거나, 문자열 연산 때문에 성능이 저하되는 경험을 하고 나면 "도대체 내부에서 무슨 일이 일어나는가?"에 대한 의문이 생긴다.이번 글에서는 자바의 Object 클래스부터 컬렉션 프레임워크까지, 코드 이면에 숨겨진 메모리 동작과 원리를 파헤쳐 보려고 한다.1. Object 클래스: equals와 hashCode의 불편한 진실모든 자바 클래스의 조상은 java.lang.Object이다. 즉 모든 객체는 Object가 가진 기능을 사용할 수 있다.equals()기본 동작 : == 연산자와 동일하게 주소값을 비교한다오버라이딩 이유 : 객체의 주소가 달라도 내용물(필드값)이 ..
2025.12.11 -
자바 메모리 구조와 OOP: 설계도에서 실체까지
자바를 이용해 공부를 하면서 기존에는 단순히 문법(Syntax) 위주로 코드를 작성했다면, 이제는 클래스와 객체가 메모리상에서 실제로 어떻게 움직이는지 연결해 보려고 한다. 자바 프로그램이 실행될 때의 메모리 영역(Method Area, Heap, Stack)을 비교하고 학습해 보았다.1. 클래스와 객체: 설계도와 제품의 관계우리가 자바 코드를 짤 때 가장 먼저 마주하는 것은 Class와 new 키워드다. 이 둘의 관계를 build.gradle의 의존성 추가하듯 살펴보자. 코드상의 정의 (설계도)// 1. 설계도 (Method Area에 저장됨)public class Car { String color; void drive() { ... }} 실행 시점의 정의 (실제품)public void ..
2025.12.10 -
[Java] 자바 기초 다시 세우기: JVM 구동 원리와 메모리 구조 (Stack vs Heap)
[Java] 자바 기초 다시 세우기: JVM 구동 원리와 메모리 구조 (Stack vs Heap)면접을 보면서 자바 기초를 다시 공부하고 있다. 이때 가장 중요하게 느끼는 부분은 '데이터가 메모리의 어디에, 어떻게 저장되는가?'이다. C언어와 다르게 Java는 포인터를 숨겨놓았다. 하지만 숨겨놓았다는 말은 존재하지 않는다는 것이 아니라, 내부적으로는 분명히 존재한다는 의미이다.Java는 내부적으로 주소값을 주고받으며 동작하기 때문에, 이 원리를 모르면 나중에 개발을 하다가 NullPointerException의 늪에 빠지게 된다. 그래서 이번에는 자바의 구동 원리와 메모리 구조를 확실히 짚고 넘어가려고 한다.1. JVM 구동 원리와 프로그램의 시작우선 코드가 어떻게 실행되는지 그 흐름부터 보려고 한다. ..
2025.12.03 -
[vscode] extensions
[vscode] extensions 프론트를 공부하기 전에 ide의 환경 세팅을 위해 친구에게 추천 extension의 목록을 받아왔다. 백엔드 스프링을 공부할 때는 인텔리제이를 사용했지만 프론트에서는 vscode를 사용한다고 한다. 시작 전에 먼저 세팅부터 시작하기로 했다. 물론 전부다 처음부터 사용할 예정은 아니고 설명을 읽고 지금 필요한 대상만 기능을 찾아보고 적용하려고 한다. 받아온 목록에 있는 extension들이 간략하게 기본적으로 어떤 도움을 주는지 알아보았다. thunder client spring에서는 웹 개발 시 API의 요청에 대한 결과를 확인하기 위해 postman을 사용 postman의 경우 다양한 기능을 지원하는 대신 api 테스트만을 위해 사용한다면 무겁다는 단점이 존재 → t..
2023.12.20