mjeongriver
article thumbnail
[F-Lab] 4주차 회고
TIL/F-LAB 2025. 3. 3. 01:25

멘토링을 시작하고 느낀 점 - 공부 방식의 변화F-Lab 멘토링을 시작하기 전까지는, 항상 "이 개념은 이거다!" 하고 단순하게 정리하고 넘어가는 방식으로 공부해왔던 것 같다.개념을 깊이 이해하기보다 "아, 이래서 이렇게 쓰는구나" 정도로만 정리하고, 바로 다음으로 넘어가는 식이었다.사실 알아야할 부분들이 많다보니 머릿속이 항상 뒤죽박죽이었고, 개념들이 서로 어떻게 연결되는지도 잘 몰랐다.결국에는 어떻게 공부해야 제대로 공부하는 건지조차 감이 안잡혔던 것 같다. 근데 F-Lab 멘토링에서는 그런 방식이 전혀 통하지 않았다.  멘토님이 하나 질문을 던지면 거기서 끝나는 게 아니라 그 질문에서 또 새로운 꼬리질문이 이어지고, 그걸 답하다 보면 또 다른 의문이 생기고..그렇게 끝없이 질문이 이어지면서 내가 얼..

상속 vs 조합(composition) 의 차이
Backend/JAVA 2025. 2. 5. 22:26

상속(Inheritance)과 조합(Composition)의 개념상속(Inheritance)부모 클래스(슈퍼클래스)의 속성과 메서드를 자식 클래스(서브클래스)가 물려받는 개념extends 키워드를 사용하여 구현 📌 예제: 상속(Inheritance)class Animal { void makeSound() { System.out.println("동물이 소리를 냅니다."); }}class Dog extends Animal { void bark() { System.out.println("멍멍!"); }}public class Test { public static void main(String[] args) { Dog dog = new Dog()..

static
Backend/JAVA 2025. 2. 5. 22:26

static 키워드란?✔ static 키워드는 클래스 레벨에서 변수, 메서드, 내부 클래스를 선언할 때 사용된다.✔ 객체(instance)마다 생성되는 것이 아니라, 클래스(class) 단위로 메모리에 단 한 번만 로드된다.✔ 즉, 객체를 생성하지 않고도 클래스명.변수명 또는 클래스명.메서드명() 형태로 접근할 수 있다. static 키워드가 사용되는 곳static 변수 (클래스 변수)모든 객체가 공유하는 변수static 메서드 (클래스 메서드)인스턴스 없이 호출 가능, 인스턴스 변수 사용 불가static 블록 (static initializer)클래스가 로드될 때 한 번 실행static 내부 클래스외부 클래스의 인스턴스 없이 사용 가능 static 변수 (클래스 변수)✔ 클래스가 로드될 때 메모리에 한..

동등성 과 동일성? == 와 equals?
Backend/JAVA 2025. 2. 5. 22:25

동등성(Equality) vs 동일성(Identity) 개념 정리동일성 (Identity)동일성이란 두 객체가 같은 메모리 주소(참조값)를 가리키고 있는지를 의미합니다.즉, 동일한 객체인지 확인하는 것을 말합니다.Java에서는 == 연산자를 사용하여 동일성을 비교합니다.동등성 (Equality)동등성이란 두 객체의 "내용(값)"이 같은지를 비교하는 것을 의미합니다.즉, 값이 같다면 "같은 객체"로 간주할 수 있도록 하는 개념입니다.Java에서는 equals() 메서드를 사용하여 동등성을 비교합니다.Java에서 equals() 메서드는 기본적으로 ==과 동일한 방식으로 동작한다.하지만 equals()를 오버라이딩하면 "동등성(Equality)"을 비교하도록 변경할 수 있다.즉, 오버라이딩하지 않으면 equ..

Primitive Type, Reference Type
Backend/JAVA 2025. 2. 5. 22:25

Primitive Type(기본 타입) vs Reference Type(참조 타입)✔ Primitive Type(기본 타입) → 값 자체를 저장하는 타입✔ Reference Type(참조 타입) → 메모리 주소(참조값)를 저장하는 타입 Primitive Type (기본 타입)- 기본 타입은 값 자체를 저장- 스택(Stack) 메모리에 저장됨- 연산을 하더라도 원본 변수는 변하지 않는다.- == 연산자로 비교하면 값을 직접 비교 📌 Primitive Type 예제public class Test { public static void main(String[] args) { int a = 10; int b = a; // 값 자체를 복사 (독립적인 변수) b = 20..

article thumbnail
Windows - DNS (/etc/hosts)
CS Basics/네트워크 2025. 2. 3. 12:24

도메인 테스트를 하면서 궁금했던 내용들프로젝트를 진행하면서 도메인마다 서로 다른 메뉴 구성이 필요했습니다. 각 도메인에서 올바른 메뉴가 제대로 렌더링되는지 확인하기 위해 hosts 파일을 활용하여 로컬 환경에서 도메인 별 테스트를 진행했습니다. 이 과정에서 몇 가지 궁금한 점들이 생겼고, 이를 해결하기 위해 DNS와 hosts 파일의 작동 방식에 대한 이해가 필요한 것 같아 글을 작성하게 되었습니다. 왜 굳이 hosts 파일을 사용하는 걸까?처음에는 단순히 DNS 서버를 통해 IP 주소를 받아올 수 있는데, 왜 굳이 hosts 파일을 수정해야 하는지 의문이 들었습니다. 알고 보니, hosts 파일을 사용하면 특정 도메인을 로컬 환경으로 빠르게 연결할 수 있어 테스트에 유용하다는 걸 깨달았습니다. 특히, ..

article thumbnail
[F-Lab] 1주차 회고
TIL/F-LAB 2025. 2. 3. 12:19

F-Lab 멘토링을 시작하기 앞서1년 차 개발자로 일하면서, 앞으로 어떻게 성장해야 할지 고민이 많았다.주어진 업무를 수행하는 데 집중하다 보니, 정작 내가 어떤 개발자가 되고 싶은지 깊이 생각해볼 기회가 없었다.백엔드 개발자로 입사했지만, 실제 업무에서는 프론트엔드 작업이 많았고, 자연스럽게 백엔드보다는 눈앞의 이슈를 해결하는 데 집중하게 됐다.기능 구현 위주의 학습에 익숙해졌고, 시스템 내부 구조를 깊이 이해하려는 노력은 부족했던 것 같다.이대로 가다가는 전문성이 부족한 개발자로 성장하지 않을까 하는 두려움이 점점 커졌고, 그럴수록 백엔드를 제대로 공부하고 싶다는 생각이 강해졌다. 그 고민 끝에 2024년 12월 퇴사를 결정했고,백엔드 개발자로서의 방향을 다시 고민하던 중, 예전부터 관심 있었던 F-..

Principal 객체
Backend/Spring & Spring Boot 2024. 1. 23. 10:36

Principal 객체란?- 스프링 시큐리티에서 사용자의 인증 정보를 담고있는 객체로 스프링 시큐리티는 사용자가 인증되면 Principal 객체를 생성하고 이를 컨트롤러 메서드에 주입합니다. 주로 사용자의 식별 정보를 담고 있으며, 주로 사용자의 식별자 (예: 사용자 아이디)를 얻을 때 사용됩니다.principal.getName()을 호출하면 현재 로그인한 사용자의 사용자명(ID)를 알 수 있습니다. JWT (JSON Web Token)을 사용하는 경우, JWT 토큰에는 사용자의 정보가 포함되어 있고, 스프링 시큐리티는 이 정보를 이용하여 Principal 객체를 생성합니다. 주로 JWT 토큰의 클레임(claims)에서 사용자 아이디를 추출하여 Principal 객체에 담습니다. 이렇게 생성된 Princ..

검색 태그