일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리눅스
- OSI7계층
- 라우팅
- osi7layer
- 컨테이너
- programmers
- snort
- 데이터베이스
- Cosmos
- db
- 프로그래머스
- Python
- coding test
- Linux
- database
- Routing
- Snort Rule
- 코딩테스트
- 스노트
- Container
- 라우팅프로토콜
- Router
- 트레바리
- 라우터
- 코딩 테스트
- docker
- 도커
- MySQL
- 스노트 룰
- TDD
- Today
- Total
목록Simple is IT/Programming (35)
Simple is IT, 누구나 보고 누구나 깨닫는 IT
Life Cycle(블로그보단 아래 위키의 가독성이 더 좋다. 추천한다)https://currenjin.github.io/wiki/spring-bean/#life-cycle Spring Bean currenjin.github.ioBean이라는 녀석은 어떤 타이밍에 생성되고, 또 소멸될까?순서크게 다음과 같은 순서를 갖는다.생성자 호출 (Bean 인스턴스 생성)의존성 주입 (Properties 세팅)@PostConstruct 메서드 실행afterPropertiesSet() 메서드 실행@PreDestroy 메서드 실행destroy() 메서드 실행순서만 봐서는 와닿지 않을 것이다. 아래와 같은 예제를 생각해보자.@Servicepublic class UserService { private final User..
LinkFixture Monkey를 적용해보자지루함을 편함으로 바꿔주는 Fixture Monkey에 대한 문서이다.Problem테스트를 작성하며 각자 느끼는 고충이 있을 것이다. 그 중 많은 사람들이 테스트를 위한 셋업 코드를 작성하며 많은 시간을 소요하고, 지루함을 느끼곤 한다. TDD의 저자 켄트벡은 두려움이 지루함으로 변할 때까지 테스트를 작성하라고 하지만, 나는 더 나아가 반복되는 지루함은 반드시 자동화해야 한다고 생각한다.테스트 코드를 작성하는 우리의 두려움은 지루함으로 바뀌었으니, 이 지루함의 반복됨을 편함으로 바꿀 수는 없을까?Fixture MonkeyFixture Monkey는 이런 고민을 해결해준다. 이 라이브러리를 사용하면,테스트 데이터 생성을 자동화하여 시간을 아낄 수 있다.다양한 시..
밥 아저씨가 생각하는 테스트 주도 개발TDD의 세 가지 법칙실패한 단위 테스트를 만들기 전에는 제품 코드를 만들지 않는다.컴파일이 안 되거나 실패한 단위 테스트가 있으면 더 이상의 단위 테스트를 만들지 않는다.실패한 단위 테스트를 통과하는 이상의 제품 코드는 만들지 않는다.확신FitNesse의 코드는 6만 4천 줄인데, 그중 2만 8천 줄은 테스트 코드다.어떤 부분이라도 바꾸게 되면 별 생각 없이 단위 테스트 코드를 돌리는데, 통과하면 내가 만든 변경이 다른 부분을 망가뜨리지 않았다고 거의 확신할 수 있다.용기믿음직한 테스트 묶음이 있으면 변경에 대한 두려움이 모두 사라진다. 나쁜 코드가 보이면 그저 그 자리를 깨끗이 치우면 된다.문서화세 가지 법칙에 따라 만든 각 단위 테스트는 코드로 만든 에제이며 시..
태도, 원칙, 그리고 행동내가 바라는 개발자의 태도우리는 목적을 함께하는 사람이다.개발자가 할 수 있는 일은 무엇일까? 소프트웨어를 다루는 프로그램을 만들거나, 기존 프로그램을 개선하는 것이 주된 일일 것이다.작은 조직에서는 서로의 일이 가까이 있기 때문에 목적을 함께하는 느낌이 강하고, 어떤 일을 진행함에 있어서도 서로 노력할 것이다. 하지만 조직의 규모가 커지면 서로의 일을 멀리서 바라보게 되고, 다양한 이해관계가 생기며 그 목적을 인지하기도, 함께한다고 생각하기도 어려워진다.그러나 나는 조직이 크든 작든 바라보는 목적이 같아야 한다고 생각한다. 개발자는 서로의 다른 목적을 충족시키기 위해 개발하는 것이 아니라, 함께 목적을 이루기 위해 개발하는 것이다. 그 목적에 다가가기 위해 각자가 가장 잘하는 ..
https://github.com/currenjin/site-for-developers GitHub - currenjin/site-for-developers: 🌏🇰🇷 개발자를 위한 북마크 모음집 🌏🇰🇷 개발자를 위한 북마크 모음집. Contribute to currenjin/site-for-developers development by creating an account on GitHub. github.com
https://github.com/currenjin/kopring-multi-module-template GitHub - currenjin/kopring-multi-module-template: Kotlin + Spring Multi module Template(Layered Architecture 🏗️) Kotlin + Spring Multi module Template(Layered Architecture 🏗️) - GitHub - currenjin/kopring-multi-module-template: Kotlin + Spring Multi module Template(Layered Architecture 🏗️) github.com Description Write the project name an..
Typescript Compile 타입스크립트는 자바스크립트의 슈퍼셋, 자바스크립트에서 정의할 수 없었던 타입을 정의해 소프트웨어 안정성을 높이는 데에 큰 비중을 차지한다. 동작과정 아래 그림은 Typescript Compile 과정의 모식도다. 이런 모식도만 본다고 우리가 코드 동작 과정을 이해하고자 하는 욕구는 사라지지 않을 것이다. 나는 tsc 명령어를 입력하는 순간 typescript 코드 속으로 빨려 들어가 볼 것이다. javascript 코드로 컴파일하기 위해 tsc 명령어를 입력했다. 그 순간, 나는 node_modules/typescript 디렉토리로 빨려들어간다. 슝….🚀 tsc tsc 명령어를 입력했을 때, 가장 처음 마주하는 파일은 src/tsc/tsc.ts이다. ts.executeC..
N+1 Settings TypeDefs const typeDefs = `#graphql type User { id: Int!, name: String!, } type Post { id: Int!, boardId: Int!, user: User!, } type Board { id: Int!, posts: [Post], } type Query { board(id: Int!): Board } `; Resolvers const resolvers = { Query: { board: (_, { id }) => Board.findOne({ where: id }), }, Board: { posts: board => Post.findAll({ where: { boardId: board.id }}), }, Post: { ..