목차서론 웹 개발 라이프사이클은 웹사이트나 웹 애플리케이션을 계획, 제작, 운영하는 전체 과정을 체계적으로 정리한 프로세스다. 이는 단순히 코드를 작성하는 것 이상으로, 아이디어 구상부터 지속적인 유지보수와 개선까지 아우르는 포괄적인 과정을 의미한다. 효과적인 웹 개발 라이프사이클은 프로젝트의 성공률을 높이고, 리소스를 효율적으로 활용하며, 고품질의 결과물을 일관되게 제공할 수 있게 해 준다. 이 라이프사이클 내에서 '기획'은 특히 중요한 위치를 차지한다. 기획이란 프로젝트의 방향을 설정하고, 구체적인 실행 계획을 수립하는 단계다. 이는 단순히 아이디어를 구체화하는 것을 넘어, 프로젝트의 목표, 범위, 요구사항, 제약사항 등을 명확히 정의하고 문서화하는 과정을 포함한다. 기획의 중요성을 조금 ..
N+1 문제는 데이터베이스를 사용하는 애플리케이션에서 자주 발생하는 성능 문제 중 하나로, 특히 ORM(Object-Relational Mapping) 도구를 사용할 때 자주 나타난다. 이 문제는 하나의 메인 쿼리를 실행한 후에, 그 결과로 얻어진 N개의 레코드 각각에 대해 추가적인 쿼리(N개의 쿼리)를 실행하는 상황에서 발생하며, 불필요하게 많은 쿼리를 보내게 되어 성능 저하를 초래한다. 요약하자면 N+1 문제는 다음과 같은 상황에서 발생한다. N개의 항목을 가져오는 쿼리를 실행한다.각각의 항목에 대해 추가로 1개의 쿼리를 실행한다.결과적으로, 처음에 실행한 1개의 쿼리(N개를 가져오는)와 각 항목에 대해 실행한 N개의 쿼리를 합쳐 N+1개의 쿼리가 실행된다. Example 이어서 코드로 예를 들어보..
프로젝트 초기에 CI/CD를 구성하며 최대 저장 개수를 정해놓지 않아 20기가 가까운 빌드가 쌓인 적이 있다. 그럴때 우선 해야 할 조치는 최대 저장 개수를 설정하는 것이고, 두 번째로 해야 할 일이 쌓여있는 빌드를 지워주는 것이다. 방법은 다음과 같다. 젠킨스 웹에서 Jenkins 관리>Script Console에 들어가 다음 코드를 실행시킨다.def job = Jenkins.instance.getItemByFullName("your-job-name")def builds = job.getBuilds()int buildCount = 0builds.each { build -> if (buildCount >= 5) { build.delete() } buildCount++}여기서 ..
자바에서 의존성 주입이란 객체 지향 프로그래밍에서 객체 간의 의존성을 외부에서 주입하는 것을 가리킨다. 이를 통해 객체 간의 결합도를 낮추고 코드의 유지보수성을 높일 수 있다. 이 글에서는 의존성 주입을 구현하는 몇 가지 방법과 특징에 대해 간단히 알아본다. 늘 그렇듯이 선요약부터: 생성자 주입: 강한 의존성을 보장하며 불변성을 유지할 수 있다.세터 주입: 유연하고 지연 주입이 가능하지만 의존성이 강제되지 않는다.필드 주입: 코드가 간결해지지만 가독성이 떨어지고 테스트가 어렵다.인터페이스 주입: 유연하지만 복잡도가 증가한다. Constructor Injection 생성자 주입은 객체가 생성될 때 필요한 의존성을 생성자를 통해 주입하는 방법이다.public class Service { private..
SQL에서 'UNION'과 'UNION ALL'은 두 개 이상의 SELECT 문에서 반환된 결과를 결합하는 데 사용된다. 말로 하니까 어려운데 예를 들어 아래와 같이 사용한다고 보면 된다.SELECT column1, column2 FROM table1UNIONSELECT column1, column2 FROM table2;그럼 'UNION'과 'UNION ALL', 두 명령어의 차이는 뭐냐, 결론부터 말하자면 '중복제거 연산의 유무'이다. 조금 상세히 정리하자면 다음과 같다. UNION 'UNION'은 결과 세트에서 중복된 행을 제거한다. 그러니까 두 SELECT 문에서 동일한 데이터를 반환하면 해당 데이터는 결과 세트에 한 번만 포함된다. 이와 같은 중복 제거 작업 때문에 'UNION' 은 'UNI..
목차 자바에서 기본 자료형(primitive type)은 null을 가질 수 없으며, 이는 자바의 설계 철학, 그리고 메모리 관리 방식에 기인한다. 구체적으로 이해하기 위해서는 기본 자료형과 객체 참조형(reference type)의 차이점을 포함해 자바의 설계 철학과 메모리 관리 방식까지 살펴볼 필요가 있다. 간결하게 요약해 보자. 기본 자료형 vs. 참조 자료형 기본 자료형 기본 자료형은 자바에서 가장 기본적인 데이터 타입이며, 값 자체를 저장한다. 아래와 같은 8개의 기본 자료형이 있다. 정수형: byte, short, int, long실수형: float, double문자형: char논리형: boolean기본 자료형은 메모리에서 고정된 크기의 공간을 차지하며, 실제 데이터 값을 직접 저장한다. ..
목차 자바 제네릭(Generic)은 자바 5에서 도입된 기능으로, 클래스, 인터페이스, 메서드의 데이터 타입을 지정하지 않고 사용할 수 있게 해 준다. 제네릭을 사용하면 코드의 재사용성이 높아지고, 타입 안전성이 보장되며, 코드의 가독성도 향상되는 장점이 있다. 이 글에서는 제네릭의 기본 개념에서 시작해 사용법, 예시 등을 간결히 정리한다. Basic Concepts 앞서 설명했듯이 제네릭은 클래스, 메서드 등에서 사용할 데이터 타입을 미리 지정하지 않고, 나중에 실제 사용할 때 구체적인 타입을 지정하도록 해준다. 이는 코드 재사용성을 크게 높일 수 있다. 제네릭 타입을 사용하는 클래스나 메서드는 다음과 같은 형태를 가진다. class 클래스이름 { private T 변수; public T 메..
로컬 스토리지(Local Storage), 쿠키(Cookies), 세션(Session)은 웹 개발에서 클라이언트 측과 서버 측의 데이터를 저장하고 관리하는 중요한 방법이다. 이들의 특징과 사용 사례, 보안 및 성능에 대해 간결히 정리해 보자. 선요약: 특성로컬 스토리지쿠키세션저장 용량각 도메인당 약 5MB각 쿠키당 최대 4KB서버 설정에 따라 다름수명영구적설정된 만료 시간까지브라우저 종료시 또는 세션 만료시접근 범위동일 도메인 내의 모든 페이지도메인과 경로에 따라 설정 가능서버에서만 접근 가능데이터 타입문자열문자열다양한 데이터 타입보안민감한 데이터 저장에 부적합HTTPS, HttpOnly로 보안세션ID를 통한 보안성능서버 통신 불필요, 빠름모든 HTTP 요청에 포함, 네트워크 성능에 영향서버 메모리 또..
서울의 번화가 한복판, 강변역 인근에는 다양한 맛집들이 즐비해 있지만, 특히 눈에 띄는 곳이 바로 '2번 포장마차'입니다. 오늘은 이 포장마차에서의 특별한 경험을 여러분과 공유하고자 합니다.저녁 시간이 되자 강변역 주변은 사람들로 붐볐습니다. 여러 포장마차 중에서도 '2번 포장마차'는 특히 인기가 많아 줄을 서서 기다려야 했습니다. 이곳의 메뉴는 다양하고, 가격은 매우 저렴해서 젊은 층에게 큰 사랑을 받고 있습니다.메뉴판을 살펴보니 곱창볶음, 떡볶이, 순대, 김치삼겹살 등이 눈에 띄었습니다. 특히 곱창볶음은 강변역에서 유명한 메뉴로, 고소하면서도 양념이 잘 배어 있어 매콤달콤한 맛이 일품이었습니다. 떡볶이는 쫄깃쫄깃한 식감과 함께 적절한 양의 매운맛이 더해져 누구나 좋아할 만한 맛이었습니다.순..
아늑한 공간에서 커피 한 잔의 여유를 즐길 수 있는 자양역 인근 카페, '플라이팬 커피'에 대한 방문 후기를 여러분과 공유하고자 합니다. 자양역 4번 출구에서 도보로 5분 거리에 위치한 이 카페는, 바쁜 일상 속 짧은 휴식을 제공하는 완벽한 장소입니다.'플라이팬 커피'의 가장 큰 특징은 커피의 맛을 진하게, 보통으로, 또는 연하게 조절할 수 있다는 점입니다. 이는 고객의 취향에 따라 커피의 맛을 선택할 수 있게 하여, 누구나 만족할 수 있는 맞춤형 커피 경험을 제공합니다. 이러한 세심한 배려는 커피 애호가들에게 큰 호응을 얻고 있습니다.카페 내부는 넓고 조명이 적절히 어두워, 노트북 작업이나 친구들과의 대화에 최적화된 환경을 제공합니다. 특히, 카공족을 위한 전용 자리가 마련되어 있어 몇 시간 ..
- Total
- Today
- Yesterday
- java
- Python
- BOJ
- Backjoon
- RX100M5
- 유럽
- 지지
- 면접 준비
- 여행
- 동적계획법
- 유럽여행
- 야경
- 중남미
- 자바
- 남미
- 리스트
- 파이썬
- spring
- 세모
- 칼이사
- 맛집
- 기술면접
- Algorithm
- 스프링
- 알고리즘
- 백준
- 세계여행
- 스트림
- a6000
- 세계일주
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |