728x90

전체 글 461

[Gradle] Gradle을 알아보자!

1. Gradle이란? Gradle은 오픈소스 빌드 도구로, 다음과 같은 특징이 있다. Groovy 또는 Kotlin DSL을 사용해서 빌드 스크립트를 작성의존성 관리: 외부 라이브러리 쉽게 다운로드하고 관리빌드 캐시, 병렬 빌드 지원: 빠른 빌드 가능유연성: 사용자 정의 태스크 추가 가능다양한 언어 지원: Java, Kotlin, Scala, Android 등 2. Gradle 주요 개념 📦 프로젝트와 태스크(Task)Gradle은 기본적으로 프로젝트 단위로 구성됨각 프로젝트에는 여러 개의 태스크(task)가 있음예: 컴파일, 테스트, 패키징, 배포 등예시// build.gradle (Groovy DSL)task hello { doLast { println '..

[Gin] Gin 시작해보자!

타입스크립트를 go로 만든다는데, 그 기념으로 go로 백엔드를 구성해보자. Go 언어를 오랜만에 공부하는데,기존 Fiber 대신 Gin을 시작해보자. 1. Gin 설치go mod init my-gin-appgo get -u github.com/gin-gonic/gin 2. 최소 실행 코드(main.go)package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() // 간단한 GET 라우터 r.GET("/ping", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "pong"}) }) // 실행 r.Run(":8080") /..

개발/Go 2025.05.14

[Spring] 트랜잭션 롤백하는 예외

예외 종류에 따라서 트랜잭션 롤백이 다르게 동작한다. Spring Framework 기준으로 트랜잭션이 롤백되는 예외는 다음과 같은 규칙을 따른다. ✅ 기본 롤백 규칙예외타입트랜잭션 롤백 여부RuntimeException (또는 그 하위 클래스)O (롤백됨)ErrorO (롤백됨)Checked ExceptionX (롤백 안 됨) ❗ 예시@Transactionalpublic void someMethod() throws IOException { // IOException은 Checked Exception이므로 기본적으로 롤백되지 않음 throw new IOException("checked exception");} 위의 경우 트랜잭션은 롤백되지 않는다. @Transactionalpublic..

[Serie A] AS 로마 공부?!

토티의 팀이었던 AS 로마에 대해서 알아보자 !! 토티는 이탈리아의 前 축구 선수. 선수 시절 포지션은 공격수, 공격형 미드필더. 현역 시절 세리에 A 통산 250골을 기록하며 세리에 A 올해의 선수를 2회, 세리에 A 득점왕과 유러피언 골든슈를 1회씩 수상하였다. 또한 이탈리아 대표팀에서도 유로 2000 준우승과 2006 월드컵 우승에 기여했다. 한편으로 레알 마드리드를 비롯한 명문 클럽들의 오퍼를 모두 거절하고, 선수 경력 전체를 AS 로마에 바친 원클럽맨이기도 하다. 1편 링크 [Serie A] AS 로마를 알아보자! [Serie A] AS 로마를 알아보자!토티의 팀이었던 AS 로마에 대해서 알아보자 !! 토티는 이탈리아의 前 축구 선수. 선수 시절 포지션은 공격수, 공격형 미드필더...

스포츠/Serie A 2025.05.10

결합도 공부

1. 개념 결합도(Coupling)는 소프트웨어 설계에서 모듈 간의 의존성 정도를 나타내는 개념이다. 쉽게 말해, 한 모듈(또는 클래스, 함수)이 다른 모듈에 얼마나 많이 의존하고 있는지를 나타내며, 이는 시스템의 유지보수성, 확장성, 재사용성에 직접적인 영향을 준다. 2. 종류결합도는 일반적으로 다음과 같은 7가지 수준으로 분류된다.(낮은 결합도 → 높은 결합도 순)결합도 종류설명자료 결합(Data Coupling)한 모듈이 다른 모듈에게 단순한 데이터를 전달. 가장 바람직함.스탬프 결합(Stamp Coupling)구조체나 객체처럼 데이터 묶음을 전달, 하지만 전체가 아닌 일부만 사용.제어 결합(Control Coupling)한 모듈이 다른 모듈에 어떻게 동작할지 지시 (ex. 플래그).외부..

개발/ETC 2025.05.08

[Serie A] AS 로마를 알아보자!

토티의 팀이었던 AS 로마에 대해서 알아보자 !! 토티는 이탈리아의 前 축구 선수. 선수 시절 포지션은 공격수, 공격형 미드필더.현역 시절 세리에 A 통산 250골을 기록하며 세리에 A 올해의 선수를 2회, 세리에 A 득점왕과 유러피언 골든슈를 1회씩 수상하였다. 또한 이탈리아 대표팀에서도 유로 2000 준우승과 2006 월드컵 우승에 기여했다.한편으로 레알 마드리드를 비롯한 명문 클럽들의 오퍼를 모두 거절하고, 선수 경력 전체를 AS 로마에 바친 원클럽맨이기도 하다. 1. 역사 The beginning1927년 여름, 로마의 스포츠 애호가들에게 큰 기쁨을 안겨주며 아소차치오네 스포르티바 로마, 즉 AS 로마가 탄생했다. 이 구단은 로마를 기반으로 한 세 개의 클럽인 포르티투도-프로로마, 풋볼 ..

스포츠/Serie A 2025.05.06

[Java] Null Object Pattern 공부

1. 개념 널 오브젝트 패턴은 null을 반환하거나 사용하지 않고, 그 대신에 행동은 하지만 아무 효과가 없는 객체를 반환하거나 사용하는 방식이다. 이 객체는 실제 구현체와 동일한 인터페이스를 구현하지만, 내부 로직은 아무것도 하지 않는다. 2. 구성요소 - 인터페이스 or 추상 클래스 > 공통된 메서드 정의 - 실제 구현 클래스(Real Object) > 기능을 실제로 수행 - 널 오브젝트 클래스(Null Object) > 아무것도 하지 않는 구현체 (혹은 디폴트 동작만 수행) 예제)public interface Log { void info(String message);}// 실제 로깅 구현public class ConsoleLog implements Log { publi..

[Serie A] SSC 나폴리 더 더 알아보기!

김민재 선수가 있을 때 우승한 나폴리에 대해서 알아보자 5. 역사Dal 1993 al 2004Dall'addio di Ferlaino al fallimento 코라도 페를라이노는 1993년에 퇴진했지만, 이듬해인 1994년까지는 주식 대다수를 보유하고 있었다. 이후 구단 지분은 세 갈래로 나뉘게 된다. 한 축은 갈로 일가(엘레니오 갈로, 나폴리의 전 이사와 그의 아들 루이스), 다른 한 축은 무냐노의 건설업자 마리오 목세다노, 마지막은 프리울리 출신 기업가이자 ‘레코드 키친’으로 알려진 셋텐이다. 하지만 마리오 목세다노는 페를라이노가 다시 돌아올 가능성을 우려해 곧바로 사임하게 되고, 구단에는 거대한 부채가 쌓여 있었다. 이후 주식은 재분배되며, 갈로와 셋텐이 각각 46.5%씩 나누어 갖고..

스포츠/Serie A 2025.05.02

이진 트리 공부

이진트리에 대해서 공부해보자 1. 개념 이진 트리는 각 노드가 최대 두 개의 자식 노드를 가지는 트리(Tree) 자료구조를 말한다. 여기서 두 개의 자식 노드는 각각 왼쪽 자식(left child), 오른쪽 자식(right child) 이라고 부른다. 트리는 그래프 이론의 한 형태인데, 방향성이 있고 순환(cycle)이 없는 연결 구조를 가지며, 이 중 이진 트리는 특별히 자식이 둘 이하라는 제약 조건이 붙은 것이다. 2. 이진 트리의 기본 용어 루트(root): 트리의 가장 꼭대기 노드. 부모가 없다. 리프(leaf): 자식이 없는 노드. (즉, 말단 노드) 내부 노드(internal node): 자식이 하나 이상 있는 노드. 서브트리(subtree): 어떤 노드를 루트로 하는 작은 트..

개발/ETC 2025.04.30

페이지 교체 알고리즘 공부

개념페이지 교체 알고리즘(page replacement algorithm)은 가상 메모리 시스템에서 사용되는 핵심 기술로, 메모리에 올라와 있는 페이지 중 어떤 것을 제거하고 새로운 페이지를 불러올지 결정하는 방법. 운영체제가 사용하는 메모리 관리 방식에서 물리 메모리는 한정적이기 때문에, 필요한 페이지가 없을 경우 디스크에서 가져와야 하고, 이때 기존 페이지 중 하나를 제거해야 한다. 이때 어떤 페이지를 제거할지를 정하는 기준이 바로 페이지 교체 알고리즘이다. 페이지 교체가 필요한 상황: 페이지 부재(Page Fault)1. 프로세스가 어떤 페이지에 접근하려고 한다. 2. 그 페이지가 현재 물리 메모리에 없으면 페이지 폴트(page fault) 발생. 3. 새 페이지를 디스크에서 불러와야 함. ..

개발/ETC 2025.04.28
728x90