일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Greedy
- 분할정복
- 배열 돌리기1
- 마크다운
- 백준
- 브루트포스
- 이진탐색
- deque
- Stack
- 정수론
- 적정 스레드
- GarbageCollector
- 그리디
- springboot
- 그래프 탐색
- GC
- DP
- 몬티홀
- Markdown
- 그래프탐색
- github
- 구현
- 회고
- 프로세스
- Python
- g1gc
- 빌더패턴
- 문제풀이
- 면접복기
- BFS
- Today
- Total
목록분류 전체보기 (68)
FeelingXD
이 글은 noah gibbs의 The Forty-Year Programmer 의 번역 본입니다. 오역,의역 혹은 번역이 어색한 부분이 있을 수 있습니다. 😅 기초에서 깊은 원리를 배울수 있습니다.(You Learn Deep Principles by Doing the Basics) 저는 사람들에게 처음부터 소프트웨어 설계의 깊은 원리를 배우라고 말하지 않습니다. 실무 경험 없이 이론으로만 배우려고 하면 거의 틀릴 가능성이 높기 때문입니다. 먼저 실제 언어로 사용 가능한 소프트웨어를 만드는 방법을 배워야 합니다. 어떤 언어든 상관없습니다. 진짜 실수를 경험해 보세요. 그런 다음 개인적으로 겪고 있는 문제를 해결하기 위해 어떤 이론이 존재하는지 이야기할 수 있습니다. 만약 여러분이 모듈화에 재능이 있는 것이 ..
이 글은 noah gibbs의 The Forty-Year Programmer 의 번역 본입니다. 오역,의역 혹은 번역이 어색한 부분이 있을 수 있습니다. 😅 일과 커리어을 혼동하지 마세요 (Don't confuse Work and Career) 저도 언젠가 은퇴하고 싶지않을까요 ? 그렇죠. 하지만 저는 일을 멈추지 않을거에요. 돈 때문에 싫어하는 일을 그만할거예요 특히 멋진걸 배울게 없다면 말이죠. 현재 YJIT에서 제가 하고있는작업은 돈을 받고 하고 있지 않습니다. 하지만 급여를 받지 않는다면 지출 보고서는 손도 대지 않을 것이고 상태 업데이트도 거의 작성하지 않을 것입니다. 시스템 관리자 업무나 Git 기록 정리도 훨씬 덜 할 것입니다. 일과 커리어를 혼동하지 마세요. 둘은 같은 것이 아닙니다..
이 글은 noah gibbs의 The Forty-Year Programmer 의 번역 본입니다. 오역,의역 혹은 번역이 어색한 부분이 있을 수 있습니다. 😅 아직 늦지 않았습니다.. (It's Early Yet) 배운게 쓸모없게된다면 어떠시겠습니까? 쓸모없다는건 상대적인겁니다. 저는 DGD라는 거의 모든분야에서 비주류인 MUD 프로그래밍 언어 에 꽤나 시간을 투자한 적이 있습니다. 그리고 그건 실용적인게 별로없었구요. 하지만 그일로 부터 많은걸 배울수있었습니다. 왜냐면 그게 이상해서요! 거기서 배운것으로 나중에 배우게된 루비온 레일즈에 도움이 되었고 database 프로그래밍 할때도 도움이 되었습니다. 실제로 db에관련한 내용을 배우거나 사용하진 않았지만 말이죠. 그일(MUD를 배운것) 은 나중에..
이 글에서는 파이썬의 namespace 에 대해서 알아봅니다. 🥕 파이썬의 네임스페이스 정의 🤔 파이썬 공식문서에서는 namespace를 다음과 같의 정의되어 있습니다. [!NOTE] namespace The place where a variable is stored. Namespaces are implemented as dictionaries. There are the local, global and built-in namespaces as well as nested namespaces in objects (in methods). Namespaces support modularity by preventing naming conflicts. For instance, the functions builtin..
Java의 Lang 패키지 👀 이 글에서는 자바의 java.lang 패키지에 대해 알아봅니다. Java 를 사용할때 우리는 정의한 클래스를 사용하기위해 별도로 import 를 통해서 사용하게됩니다. 그렇지만 String, Integer 등 우리가 정의하지않았지만 자바에서 기본 적으로 제공되는 이 클래스는 어디서 왔을까요 ? Java 의 lang 패키지 우리가 따로 import 하지 않고 사용하는 기본 자료형 이라고 불리는 이는 java 의 lang 패키지에 정의 되어 있습니다. Java 공식 자료에는 다음과 같이 작성되어 있습니다. java doucment 의 lang java.lang : Provides classes that are fundamental to the design of the Java ..
람다 함수 알아보기 👀 이 글에서는 람다식, 또는 람다 함수라고 불리는 lambda Λ 에 대해 알아봅니다.✨ 람다(Λ) 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명함수(Annonymous functions)을 지칭하는 용어입니다. 프로그래밍 언어에 따라서 화살표함수(Javascript), 익명함수, 람다 등 다양한 용어로 사용됩니다. 람다식은 컴퓨터 과학분야에서 의 람다 대수 입니다. 람다 라는 표현은 막상 어렵게 다가오지만 함수를 단순하게 표현하는 방법이라고 생각하시면 됩니다. #python def func(): # 함수의 기본형태 print("hello world!") (lambda: print("Hello, world!"))# 위의 함수와 동일합니다. //java public class..
이 프로그래머 경력 40년이 개발자 Noah Gibbs가 작성한 회고록의 번역입니다. 오역,의역, 오타가 있을 수 있습니다. 🥕 들어가며 2024년이면, 나는 프로그래머로서 40년간 업계에 종사하게 되었습니다. 물론 아직은 아니지만 금방 그렇게 될겁니다. 소프트웨어를 개발해서 돈을 많이 버는것과 소프트웨어 회사를 창업하는건 다릅니다. 아! 저는 돈을 잘벌어요. 하지만 이글에서는 그것에 관한 이야기는아닙니다. 제가생각하기에 당신은 아마 오래도록 소프트웨어 개발자가 되고싶어 했을겁니다. 그건 다른 몇 사람들이 오래도록 음악가가 되고싶어하거나 예술가, 지붕수리공 등 오래도록 되고싶어 하는것과 비슷합니다. 만약 아니라면 지금이라도 뒤로가기 버튼을 누르셔도 좋습니다. 하지만 저는 당신이 아마 20년 ,40년차의 ..
❓ Problem 🤔 How 기존 이동가능 한 통로(0) 은 항상 0이다 반환해야 할 map 형태는 벽을 깬이후 이동할수있는 거리의 최대값 이다. 각 위치에서 최대 이동거리를 기록한다. 최적화 벽을 깬이후 해당 위치에서 상 하 좌 우 를 탐색하며 갈수있는거리를 구하는건 굉장히 비효율적이다. 이를 위해 미리 캐싱해두는 법이 필요하다. 이제 이를 이동 가능한 통로를 다음과 같이 그룹으로 묶어 줄 수 있다. 위의 그림에서는 연두색이 5칸, 분홍색이 4칸 주황색이 1칸 인 그룹으로 구분 된다. 이를 그룹별로 나누고 그룹의 크기가 얼마나 되는지 표시한 자료구조가 필요하다. 깰벽을 기준으로 상하 좌우 탐색을 하고 (기본값+1 : 깨진벽은 통로가 될수 있으므로) 과 상 하 좌 우를 탐색해서 만날수 있는 통로의 그룹을..
❓ Problem 🤔 How ❗ Solve # 나이트 투어 import sys input =sys.stdin.readline ROWS=COLOUMS=6 visited=[[False]*6 for _ in range(6)] moves=[[2,1],[-2,1],[1,2],[1,-2],[-1,2],[-1,-2],[2,-1],[-2,-1]] # 나이트의 이동 def board_to_pos(word): # 체스보드 위치를 좌표로 변환 x=ord(word[0])-ord('A') y=ROWS-int(word[1]) return (y,x) def validate_move(s_pos,t_pos): # 현재위치와 다음위치 비교 global visited cy,cx=s_pos for dy,dx in moves: ny,nx=c..
데커레이터를 사용할때 혹은 다른 오픈된 깃허브 소스를 보다보면 다음과 같은 코드들이 있다. def some_cool_func(*args,**kwargs): # arg~~ # .. pass 여기서 매개변수를 *args, **kwargs 를 사용하는데 이것은 무었을 의미할까 ? 궁금했다. 🤔 args와 kwargs 📝 args 는 흔히 사용하는 매개변수의 약어이다. (argument) 그리고 kwargs는 Keyword Argument 의 약어이다. *args 와 **kwargs 를 이해하기 전에 Python 의 postion argument와 keyward argument 를 잠깐 설명해보자면 다음과 같다. # Position argument & Keyword argument def func(sender,..
이 글은 @staticmethod, @classmethod, @property 등 다양하게 사용되는 Python의 데코레이터에 대해서 다룹니다. 해당글은 깃허브 에서도 볼 수 있습니다. 데코레이터란 ? 👀 파이썬의 데코레이터는 함수나 메서드 에 적용되어, 사용하려는 함수, 메서드의 기능을 확장하거나 변경하는 역할을합니다. 데코레이터(Decorator) 말 그대로 꾸며주는 기능을 합니다. 기본적으로 데코레이터는 함수를 인자로 받고 추가기능(데코레이터) 를 추가한 고차함수를 반환 합니다. 데코레이터 맛보기 👅 - 예시 데코레이터는 언제 사용해야할까 ? 함수, 혹은 메서드를 사용 하는데 공통적으로 사용되는 다른 기능(함수)이 있을때 사용하는게 좋다. 설명이 모호한 관계로 예시와 함께 알아보자! 🤔 다음 함수를..
OOP (Object-Orient-Programming) 이 글에서는 프로그래밍 패러다임 중 하나인 OOP(객체지향개발)에 대해 서술한 글 입니다. 1. OOP 이전에는 .. 👀 초기의 컴퓨터 프로그래밍은 단순 명령어 집합 혹은 일렬을 과정에따른 순서대로 처리하는 절차 지향 프로그래밍 방식 이였다. 과거에는 컴퓨터 성능이 크게 좋지않고 그에따라 구동가능한 프로그램의 크기 또한 제한적이기에 절차 지향 프로그래밍 으로 충분히 문제를 해결 할 수 있었다. 2. 절차지향의 문제와 새로운 패러다임 OOP 인류의 발전으로 컴퓨터 성능의 발전과 그에따른 프로그램의 요구사항이 많아짐에 따라 기존의 절차 지향 프로그래밍 의 문제점들이 드러나기 시작했다. 2-1. 절차지향의 문제점들 유지보수 , 디버깅의 어려움 : 절차지..