etc

클린코드01:: 클린코드(Clean Code)란 + 의미있는 이름

서론 [Clean Code 책 소개] IT 개발자들에게 거의 필수 교과서라고 할 수 있는 책이다. 코딩에 관심 좀 있다하면 다들 한 권씩은 소장하고 있는 것 같다. 거의 바이블인듯 (아닐 수도 있음 ㅎ) 나도 그 중에 한명이 되어보고자 책을 구매했지만 바로 초심 잃고 이제서야 읽기 시작함 ㅎㅎ 이 책을 공부하면서 얻은 중요한 것들과 내 생각을 정리해보고자 한다. 1장. 깨끗한 코드 협업을 하면서 다른 사람이 쓴 코드를 보면, 간혹 이게 뭔말인가 싶은 코드들이 있다. 또는 '굳이...? 이렇게...?' 라는 생각이 들 때가 있을 것이다. 물론 나도 예외는 아니다. 지금도 흑역사로 남은 코드들을 들킬 때면 머쓱머쓱 해진다. 나쁜 코드 귀찮아서, 혹은 지금 당장 돌아가기만 하면 되니까 라는 마음으로 코드를 짜..

Spring | Java

[Spring] AOP 구현 + AspectJ 활용

의존성 추가 Maven 스프링 AOP를 사용하기 위해서는 아래와 같이 의존성을 추가해야 한다. org.springframework.boot spring-boot-starter-aop 하지만!!!!!! 나는 더 많은 조인포인트 사용을 위해 AspectJ를 활용할 것이다. (이에 대해 자세한 내용은 다음 포스팅에..

Spring | Java

[Spring] 스프링 AOP

AOP (Aspect Oriented Programming) AOP는 Aspect Oriented Programming의 약자이며 관점 지향 프로그래밍이라고 한다. 로직을 핵심적인 관점 및 부가적인 관점으로 나눠 그 관점(Aspect)을 기준으로 각각 모듈화하는 개발 방법이다. 핵심적인 관점은 핵심 비즈니스 로직을 말하며, 부가적인 관점은 어플리케이션에서 공통적으로 발생하는 부가적인 작업을 의미한다. 이러한 부가 작업에는 로깅, 트랜잭션 관리, 보안, 캐싱 등 다양한 측면을 포함할 수 있다. 개발을 진행하다 보면 반복해서 사용해야 하는 코드들이 있다. 아래 예시에서 사용자 정보를 불러오는 UserService와 메일 정보를 불러오는 MailService는 핵심 기능 관점에서는 공통 요소가 없다. 하지만 ..

Leetcode

[leetcode] 62. Unique Paths

문제 : https://leetcode.com/problems/unique-paths/description/ 난이도 : Medium 풀이 1) dp로 풀기 class Solution: def uniquePaths(self, m: int, n: int) -> int: if not m or not n: return 0 cur = [1] * n for i in range(1, m): for j in range(1, n): cur[j] += cur[j - 1] return cur[-1] 2) 수학적으로 풀기 class Solution: def uniquePaths(self, m: int, n: int) -> int: return factorial(m+n-2) // factorial(m-1) // factoria..

일기

23년 05월 골프연습/희또결/한강/서울버스투어/뮤지컬할란카운티

5월은 날 좋은 봄이기도 하고 가정의 달이라 그런가.. 정리하려고 보니 한게 너무 많은 것 같다. 연달아 연휴기도 하고 어버이날이이기도 해서 엄마랑 놀겸 집에 내려갔다. 요즘 엄마가 나 골프 시키려고 계속 꼬시는 데 돈 없다고 계속 거절 중... (진짜 없음;;) 그랬더니 내려가있던 사흘 내내 엄마가 연습장 데리고다니면서 골프 연습 시켰다ㅠ 근데 뭐 할 줄 알아야 재미가 있지ㅠㅠㅠ 한달 배우긴 했어도 다 까먹어서 채 잡는 법도 잊어버렸다.. 처음엔 공도 안 맞고 허리도 아프고 이걸 도대체 왜 재밌어하나 하면서 울면서 쳤다.. 근데 둘째날 되니까 공도 치기 시작하면서 타격감이 살짝 다른게 느껴짐ㅎ 공이 잘 맞았은 소리가 났을 때 그 쾌감이,,, 이래서 골프치나 흔들렸다ㅎㅎ 주말엔 담양까지 가서 밥은 먹었는..

힞뚜루마뚜루
히++;