전체 글106 #7: 2025년은 계획대로 잘 되어가고 있을까? 어느새 2025년의 두 번째 주의 끝, 일요일이 찾아왔다. 오랜 시간 고민하고 다양한 방법을 시도했지만, 나름 괜찮다고 생각했던 공부 계획은 뜻대로 이루어지지 않았다. 이전에 열심히 학습했던 내용들은 시간이 지나도 쉽게 떠올릴 수 있을 거라 자신했지만, 이는 큰 착각이었다. 복습하는 내용들이 생소하거나 어렵다기보다는, 그 내용들을 다시 머릿속에 체득하는 데 절대적으로 많은 시간이 필요하다는 것을 깨닫는 중이다. 😥다행히 최근에 공부 환경을 개선했다. 이전에는 공유 오피스에서 무덤덤하게 공부를 했지만, 이틀 전 새롭게 옮긴 스터디 카페에서는 훨씬 집중이 잘 된다. 이 변화를 통해 나 혼자만의 열정으로 꾸준히 공부할 만큼 충분히 다듬어지지 않았다는 점을 깨달았다. 다른 사람들의 눈치, 압박, 그리고 열심히.. 회고🐜 2025. 1. 11. 3. 스프링 프레임워크의 핵심 기능 1. 의존성 주입의존성 주입(DI, Dependency Injection)는 '의존하는 부분을 외부에서 주입하는 것'을 의미한다. 지금은 이정도로 이해해도 충분하다. 2. 의존성자바에서 의존성은 여러 형태가 있다. 대표적으로 new 키워드로 클래스의 인스턴스를 생성하는 방법이 있다. 예를 들어, 어떤 프로그램에 '사용하는 객체' A 클래스와 '사용되는 객체' B 클래스가 있다고 가정하자. A 클래스에서 B 클래스를 사용하려면 new 키워드를 이용해 B 클래스의 인스턴스를 생성하고, B 클래스의 메서드를 사용하게 된다. 이때 B 클래스에서 구현했던 메서드를 변경하면 그 영향으로 A 클래스에서도 해당 메서드를 변경해야 한다. 이러한 관계를 'A 클래스는 B클래스에 의존한다'라고 한다. 의존에는 클래스 의존(.. 스프링 프레임워크 첫걸음(구버전) 2025. 1. 11. 2. 자바 기초 지식 복습 1. 인터페이스(Interface)인터페이스(Interface)는 클래스에 포함하는 메서드의 구체적인 내용을 작성하지 않고 상수와 메서드 타입만 정의한 것을 의미한다. 자바에서 인터페이스는 다음과 같은 특징을 갖는다. 추상 메서드인터페이스 내의 메서드는 구현 내용 없이 메서드 시그니처만을 정의하위 클래스에서 반드시 구현해야 함다중 상속자바에서 클래스는 다중 상속을 지원하지 않지만, 여러 인터페이스 구현이 가능클래스는 여러 인터페이스에서 정의한 메서드를 모두 구현이 가능계약(Contract)클래스가 어떤 메서드를 반드시 제공해야 한다는 계약(Contract)을 정의클래스가 특정 인터페이스를 상속하면 해당 인터페이스의 메서드를 반드시 구현해야 함인터페이스 상속인터페이스도 다른 인터페이스로부터 상속이 가능여러.. 스프링 프레임워크 첫걸음(구버전) 2025. 1. 11. 1. 스프링 프레임워크 개요 1. 프레임워크란?프레임워크(Framework)- 소프트웨어나 애플리케이션 개발을 간단하게 해주는 뼈대 프레임워크의 장점개발에 필요한 최소한의 기능을 제공애플리케이션 개발에 필요한 시간과 비용 최소화 프레임워크의 단점프레임워크 고유의 사용 방법에 대한 이해 2. 스프링 프레임워크란?스프링 프레임워크(Spring Framework)자바 개발 환경에서 사용되는 프레임워크동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공 스프링 프레임워크 구성 스프링 부트(Spring Boot)- 스프링 애플리케이션을 복잡한 설정 없이 빠르게 작성하는 기능을 제공 스프링 프로젝트스프링 MVC(Spring MVC): 웹 애플리케이션을 간단하게 생성하는 기능을 제공스프링 데이터(Spring Data): 데이터 접근에 관한.. 스프링 프레임워크 첫걸음(구버전) 2025. 1. 11. String 클래스 총정리(feat. StringBuilder, StringBuffer, Arrays) String1. String의 기본 개념정의: String은 문자의 배열로, 문자열 클래스자바의 String 클래스: java.lang 패키지에 속하며, 기본적으로 import 없이 사용 가능불변성: String 객체는 생성된 후 값을 변경할 수 없음. 값을 변경하면 새로운 객체가 생성2. String 생성 방법리터럴 방식상수 풀(Constant Pool)에 저장동일한 값이 있다면, 새로운 객체를 생성하지 않고 재사용String str1 = "Hello";new 키워드 사용힙 영역에 새 객체를 생성값이 동일하더라도 새로운 객체 생성String str2 = new String("Hello");3. String의 주요 특징Immutable(불변): 문자열을 변경하는 작업은 새로운 객체를 생성3.1참조 비교와.. 개인 정리w 2025. 1. 11. #6: 2025년 계획 IT 서비스 분야 취업 성공을 향한 여정IT 업계 취업 시장이 얼마나 치열한지는 이미 익히 들어왔다. 2년 전부터 어렵다는 얘기가 계속 들려왔고, 잡코리아나 사람인 같은 플랫폼에서 신입 채용 경쟁률을 보면 1:300은 기본이다. 더 심각한 건 그렇게 경쟁이 치열한데도 근무 조건이나 연봉이 딱히 매력적이지 않다는 점이다. 그런데도 IT 분야에는 여전히 많은 사람들이 몰리고 있다. 결국 합격하는 사람은 철저히 준비된 소수라는 사실은 변함없다. 하지만 경쟁률이 높아질수록 그 소수가 되기 위한 기준도 더 높아진다. 나도 그 준비된 소수에 들기 위해 과거의 실수를 교훈 삼아 더 체계적이고 견고한 계획을 세우기로 했다.1. 아무 데나 취업하지 않기: 나만의 첫 번째 원칙취업이 급하다고 아무 회사나 가는 건 하지 않.. 회고🐜 2025. 1. 5. 김영한의 실전 자바 - 자바 중급 2편: 컬렉션 프레임워크(feat. Comparable, Compartor, Stream, Optional) 컬렉션 프레임워크Collection, CollectionsList(ArrayList, LinkedList)Set(HashSet, LinkedHashSet, TreeSet)Queue, Deque(PriorityQueue, ArrayDeque)Hash, Map (HashMap, TreeMap, ConcurrentHashMap)Comparable, ComparatorStream, CollectorOptional1️⃣ Collection, Collections자바 컬렉션 프레임워크는 데이터를 효율적으로 저장하고 관리할 수 있는 데이터 구조와 알고리즘을 제공하는 라이브러리1. Collection 특징Collection은 List, Set, Queue의 상위 인터페이스이다. 컬렉션 프레임워크는 제네릭을 지원하여 타.. 김영한의 실전 자바 - 중급1, 2 2025. 1. 1. #5: 2024년 회고 20242024년은 성장하는 개발자로 거듭나기 위해 다양한 경험을 쌓으며 도약의 발판을 마련한 한 해였다. 결론적으로, 올해를 포함한 지금까지의 모든 경험과 결과를 통해 나 자신을 객관적으로 돌아보고, 약점으로 느껴지는 부분들을 어떻게 보완할지를 구체적인 행동으로 옮길 계획을 세웠다. 이는 단순한 다짐이 아니라, 실천 가능한 목표와 전략을 바탕으로 한 견고한 계획이었다. 특히, 나는 무엇을 통해 이러한 계획을 세웠으며, 스스로에게 부족한 부분이 무엇인지 깊이 돌이켜보았다. 이를 통해 나의 약점을 명확히 인식하고, 이를 보완하기 위한 구체적이고 체계적인 노력을 지속해 나갈 수 있는 기반을 다질 수 있었다. 2024년은 단순히 성장의 해가 아니라, 나 자신을 재정립하고 더욱 단단해진 마음가짐으로 미래를 준비.. 회고🐜 2024. 12. 31. JDK, JRE, JVM 총정리(feat. 자바 컴파일 과정) 1. JDKJDK(Java Development Kit)는 자바 프로그램을 개발하고 실행할 수 있는 환경을 제공하는 도구이다.JDK는 JRE(JVM, Java Class Library), Java Development Tools(javac, java, javap, apt, jar, ...)을 포함한다.예를 들어,소스 코드 컴파일러(javac): .java 파일을 바이트코드(.class)로 변환디버깅 도구(jdb): 디버깅 및 오류 분석JAR 생성 도구(jar): 클래스 파일들을 하나의 JAR 파일로 묶음C:\Program Files\Java 안에 JDK 폴더를 확인할 수 있고, JRE, Java Dev Tools가 있다.JDK 1.8(Java 8) 이전인 경우, JDK 폴더와 JRE 폴더로 따로 있다.현.. 개인 정리w 2024. 12. 26. 김영한의 실전 자바 - 기본편(feat. 전체 정리) 1. 클래스와 데이터1. 클래스 도입사람이 관리하기 좋은 방식으로 어떠한 개념을 하나로 묶는 것이다.예) Student 클래스public class Student { String name; int age; int grade;}클래스에 정의된 변수들(name, age, grede)을 변수, 또는 필드라 한다.멤버 변수(Member Variable) : 이 변수들은 특정 클래스에 소속된 멤버이기 때문에 이렇게 부른다.필드(Field) : 데이터 항목을 가리키는 전통적인 용어이다.자바에서 멤버 변수, 필드는 같은 뜻이다. 클래스에 소속된 변수를 뜻한다.클래스란 설계도이다.클래스를 사용하면 int, String과 같은 타입을 직접 만들 수 있다.(Student)사용자가 직접 정의하는 사용자 정의 타입을 .. 김영한의 실전 자바 - 기본편 2024. 12. 23. 김영한의 실전 자바 - 자바 중급 1편: 4. 래퍼, Class 클래스 1. 래퍼 클래스 - 기본형의 한계1기본형의 한계자바는 객체 지향 언어이다. 그런데 자바 안에 객체가 아닌 것이 있다. 바로 int, double 같은 기본형(Primitive Type)이다. 기본형은 객체가 아니기 때문에 다음과 같은 한계가 있다.객체가 아님: 기본형 데이터는 객체가 아니기 때문에, 객체 지향 프로그래밍의 장점을 살릴 수 없다. 예를 들어 객체는 유용한 메서드를 제공할 수 있는데, 기본형은 객체가 아니므로 메서드를 제공할 수 없다.추가적으로, 객체 참조가 필요한 컬렉션 프레임워크를 사용할 수 없다. 그리고 제네릭도 사용할 수 없다. (이 부분은 뒤에서 설명한다.)null 값을 가질 수 없음: 기본형 데이터 타입은 null 값을 가질 수 없다. 때로는 데이터가 없음이라는 상태를 나타내야 .. 김영한의 실전 자바 - 중급1, 2 2024. 12. 15. 쿠버네티스(Kubernetes): 쿠버네티스가 뭐야? 1. 쿠버네티스(Kubernetes)란?쿠버네티스(Kubernetes)는 다수의 컨테이너를 효율적으로 배포, 확장 및 관리하기 위한 오픈 소스 시스템이다.쿠버네티스(Kubernetes)는 Docker Compose와 비슷한 느낌을 가지고 있다. Docker Compose도 다수의 컨테이너를 쉽게 관리하기 위해 활용하기 때문이다. 머릿속에서 쿠버네티스(Kubernetes)의 대략적인 이미지를 그릴 때는 Docker Compose의 확장판이라고 생각하면 편하다.2. 쿠버네티스의 장점컨테이너 관리 자동화 (배포, 확장, 업데이트)부하 분산 (로드 밸런싱)쉬운 스케일링셀프 힐링3. 파드(Pod)란?도커에서는 하나의 프로그램을 실행시키는 단위를 컨테이너라고 주로 불렀다. 쿠버네티스에서는 하나의 프로그램을 실행시키.. 쿠버네티스 2024. 12. 4. 이전 1 2 3 4 5 6 7 ··· 9 다음