- [ Dev/Book ][BOOK - 클린코드] Chapter 2. 의미 있는 이름 - 공사중🚧2025-02-06 01:12:32의도를 분명히 밝혀라변수나 함수 그리고 클래스 이름은 의도가 분명히 드러나 있어야 한다.주석이 필요하다면 의도를 분명히 드러내지 못했을 가능성이 크다. 🔹 예제 코드// 나쁜 예public List getThem() { List list1 = new ArrayList(); for (int[] x: theList) if (x[0] == 4) list1.add(x); return list1;}// 좋은 예public List getFlaggedCells() { List flaggedCells = new ArrayList(); for (int[] cell: gameBoard) if (cell.isFlagged()) flaggedCells.add(cell); return..
- [ Dev/Book ][BOOK - 클린코드] Chapter 1. 깨끗한 코드2025-01-24 15:10:35코드는 존재하리라코드를 자동으로 생성하는 시대가 오더라도 프로그래머가 필요 없다는 말은 헛소리이다.요구사항을 모호하게 줘도 우리 의도를 정확히 꿰뚫어 프로그램을 완벽하게 실행하는 기계는 절대로 불가능한 기대이다.코드는 요구사항을 상세히 표현하는 수단이다.추상화도 불가능하다. 정확히 명시해야만 한다.기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업이 '프로그래밍'이다. 나쁜 코드나쁜 코드로 만들어진 서비스나 제품은 회사가 망할 정도의 타격을 입는다.우리 모두는 어떤 이유(바쁨, 마감 기한 등)로 인해 대충 짠 프로그램을 나중에 손 보겠다고 한다.하지만 르블랑의 법칙에 의해 나중은 결코 오지 않는다. 나쁜 코드로 치르는 대가나쁜 코드가 쌓일 수록 팀 생산성은 떨어지며 결국은 생산성이 제로에 수렴한다.생..
- [ Dev/JPA ][JPA] 3. 매핑 종류(공사중..🚧)2025-01-11 23:26:41JPA에서 엔티티 매핑(Entity Mapping)은 객체 지향 프로그래밍에서 객체와 데이터베이스의 테이블 간의 관계를 정의하는 중요한 개념이다. JPA는 자바 객체와 관계형 데이터베이스의 테이블 간의 매핑을 통해 객체-관계 매핑(ORM)을 구현한다. 객체와 테이블 매핑다음과 같은 개념이 존재한다. 차례대로 자세히 알아보자.객체와 테이블 매핑: `@Entity`, `@Table`필드와 컬럼 매핑: `@Column`기본 키 매핑: `@Id`연관관계 매핑: `@OneToOne`, `@OneToMany / @ManyToOne` , `@ManyToMany`, `@JoinColumn` @Entity`@Entity` 붙은 클래스는 JPA가 관리, 해당 클래스가 엔티티임을 명시한다.엔티티는 데이터베이스의 테이블과 매..
- [ Dev/JPA ][JPA] 2. 영속성 컨텍스트(Persistence Context), flush, 준영속 상태2025-01-10 15:58:51영속성 컨텍스트란?영속성 컨텍스트는 JPA에서 매우 중요한 개념으로, 엔티티를 영속성 상태로 관리 및 저장하는 환경이다. `EntityManager`를 통해 영속성 컨텍스트에 접근하며, 데이터베이스와의 상호작용을 효율적으로 관리한다. 💡영속성이란?영속성은 데이터나 객체가 일시적인 메모리 내에 머무르는 것이 아니라, 영구적으로 저장되고 유지되는 특성을 의미한다.프로그래밍에서 영속성은 주로 데이터가 애플리케이션이 종료되더라도 데이터베이스, 파일 시스템, 영속성 저장소와 같은 외부 스토리지에 저장되어 지속적으로 접근할 수 있는 상태를 나타낸다.">💡영속성이란?영속성은 데이터나 객체가 일시적인 메모리 내에 머무르는 것이 아니라, 영구적으로 저장되고 유지되는 특성을 의미한다.프로그래밍에서 영속성은 주로 데이터..
- [ Dev/JPA ][JPA] 1. Java Persistence API 들어가기2025-01-05 10:43:48애플리케이션에서 데이터베이스를 관리하는 여러 방법애플리케이션에서 관계형 데이터베이스를 관리하는 방법은 여러가지가 있다. 우선 JPA를 학습하기 전, 다음과 같은 방법들을 직접 코드를 통해 비교해보고 JPA를 사용하면 어떤 이점과 단점이 있는지 확인해보자. 1. JDBC (Java Database Connectivity)JDBC는 Java 애플리케이션과 관계형 데이터베이스 사이의 연결을 관리하는 표준 API이다. SQL 작성부터 파라미터 바인딩, 심지어 커넥션 연결/해제, 트랜잭션 처리 등 하나의 SQL 문을 처리하기 위한 여러 코드 작성이 필요하다.특징: 직접적인 `Connection`, `PreparedStatement`, `ResultSet` 객체를 사용하여 데이터베이스와 상호작용한다.단점: 코드가 ..
- [ 회고록 ][회고록] 2024년 12월 2주차2024-12-10 00:09:53😊좋았던 것담배 끊기11월 1일에 시작한 금연이 어느덧 39일째를 맞이했다. 금연을 시도한 이래로 이번이 가장 긴 기록이다. 이전의 금연 경험은 훈련소에서의 38일과 작년 한 달간의 시도가 전부였지만, 이제는 나이도 있고 건강을 생각해 확실히 담배를 끊고자 한다. 기록을 세우는 재미도 있고, 코가 막히지 않아 확실히 상쾌하다.이제 어느 정도 금연의 안정기에 접어들었지만, 여전히 가끔 담배 생각이 나곤 한다. 특히 초기 금단 증상은 강렬했고, 어찌나 증상들이 다양했는지 그 경험을 통해 중독의 무서움을 깨달았다. 힘든 순간마다 '아쉬워하지 말자, 미련 갖지 말자, 약해지지 말자' 이 세 마디를 되뇌며 한걸음씩 나아갔다.이 여정에 큰 도움을 준 한 사람이 있다. 진심으로 감사의 말을 전하고 싶다.절제하고 있..
- [ 회고록 ][회고록] 2024년 11월 5주차2024-11-27 17:07:31😊좋았던 것 오픈소스 컨트리뷰션 활동처음으로 오픈소스에 기여할 수 있게 되었다!아직은 경험이 부족하다고 생각해 참가하면서 다양한 경험과 네트워킹을 쌓는 것에 초점을 맞췄는데, 감격스럽게도 커밋을 해서 조금이나마 기여할 수 있게 되었다!🥹 자세한 내용은 이쪽으로! 스터디 활동원티드 백엔드 챌린지 프로그램을 통해 알게 된 멤버들과 스터디를 진행하고 있다. 스터디 내용은 자바와 Spring 관련해서 하고 있는 중인데 다들 열심히 준비하셔서 동기부여도 되고, 복습 차원에서도 좋은 것 같다. 처음 공부할 때, 자바의 정석 130개 정도 되는 영상을 3번은 돌려봤었는데 오랜만에 보니 까먹었던 내용도 다시 알게 되고, 특히 람다와 스트림, 제네릭 부분은 많이 까먹었는데 이참에 다시 제대로 복습할 계획이다. 일찍 ..
- [ 활동 ]내 생애 첫 Opensource Contribution2024-11-25 23:42:07저번 주 토요일에 오픈소스 오프라인 밋업 행사가 있어 참가하게 되었다.사실 거창하게 제목을 달았지만 몇 줄 안 되는 코드로 컨트리뷰션을 하게 되었다. 엄청난 기능을 만들거나, 버그를 고쳐서 컨트리뷰션이 된 것은 아니었지만, 어렵게만 느껴졌던 오픈소스에 기여를 했다는 것이 뿌듯하여 기록으로 남기려고 한다.행사에 참가한 메인테이너분들과 참여자분들의 도움도 있었지만, Rust라는 언어를 모름에도 '코드를 계속 따라가고 적용해 보면서 어떤 부분을 고치면 되겠다'는 분석을 통해 커밋을 한 게 성취감이 많이 느껴진 거 같다.물론 모듈화나 코드가 깔끔했던 것은 물론이고, 메서드 이름만으로 어떤 동작을 하는지 유추할 수 있을 정도여서 분석이 가능했다. 인정. 이번 포스트에서는 컨퍼런스에서 배운 내용이나 경험하고 나서..