본문 바로가기

전체 글56

글또 7기를 시작하는 글 7기 시작을 굉장히 기다렸는데 드디어 시작되었다! 글또 페이스북 글또 노션 페이지 나는 이 전 6기에 글또를 처음 진행했었고, 7기는 두 번째 이다. 글또 7기는 5월 1일 OT를 시작으로, 5월 15일부터 10월 16일까지 2주에 1회씩 글을 작성하는 방식으로 진행된다. 왜 신청했나 6기에서의 경험이 너무 좋았다. 덕분에 글쓰기에 관심을 갖고 노력해볼 수 있었고, 좋은 인연을 만날 수 있었다. 6기가 끝나자마자 멈춰버린 나의 블로그가 아쉬웠다. 약간의 강제성을 더해 다시 한번 힘내보고자 신청하게 되었다. 이전엔 티스토리 블로그를 통해 글을 썼는데, 불편한 점이 너무 많아 벨로그로 이사해볼까 하고있다. 6기에서 아쉬웠던 점들과 7기에서 하고싶은 것들 가장 큰 아쉬움으로, 6기 다짐글을 작성하지 않았다. .. 2022. 6. 12.
유스콘 쿠버네티스 복습하기 - 1. 환경 설정 https://github.com/youthcon-21-k8s/k8s-init GitHub - youthcon-21-k8s/k8s-init Contribute to youthcon-21-k8s/k8s-init development by creating an account on GitHub. github.com 유쾌한 스프링방, 루기님을 비롯한 도움을 주신 모든 분들께 다시 한 번 감사드립니다. 실무에서 쿠버네티스를 사용하지 않고 있어 일부 잘못된 설명이 있을 수 있습니다. 댓글로 알려주면 감사하겠습니다. 글은 공부한 내용을 정리하는 느낌으로 편하게 작성했습니다. 실습 환경 구성하기 실습에서는 VirtualBox와 Vagrant가 사용된다. MacOS macOS의 경우 brew를 통해 설치 가능하다. br.. 2022. 6. 12.
2021년도 회고 나에게 정말 많은 일이 있었던 2021년이 지나갔다. 나는 어떤 고민들을 했었고 어떤 부분이 발전했을까? 남들에게 나에 대해 얘기할 때 무난한 삶을 살아왔다고 했었다. (사실 내가 내 삶에 무관심했을지도 모른다) 올해는 평소와 같지 않았고, 스토리가 잔뜩 있다. 처음으로 하는 1년치 회고이기 때문에 어떤 방법이 효율적일까 고민해봤는데, 시간순으로 대표적인 키워드를 적고 기억을 되살리는 식으로 작성했다. 그러다 동일한 시간대에 두 가지 이상의 이벤트가 발생하는 경우 글의 흐름을 방해하거나 적는걸 포기해야 했다. 이 문제를 해결하기 위해 이동욱님과 한정수님의 회고 작성 방식을 참고해서 키워드 단위로 재작성했다. 2020년 말에 퇴사를 하고 백수인 채로 2021년을 맞이했었다. 2020년 회고가 따로 없었고,.. 2022. 1. 2.
@Cacheable은 this 호출로 동작하지 않는다. 1. 프록시 스프링의 Cache, AOP, Transaction은 Proxy를 사용합니다. 여긴 조금 더 조사가 필요하지만, 스프링에서 CGLIB 이라는, 동적으로 프록시 객체를 구성하는 라이브러리를 사용하고 있습니다. 프록시 객체는 실제 사용되는 객체를 상속받아, 원하는 작업(AOP, cache 등)을 수행하고 실제 객체를 호출하는 역할을 합니다. 프록시에 대한 예제 코드는 여기를 참고하시면 좋을 것 같습니다 2. Autowired @Autowired 어노테이션은 ApplicationContext에서 알맞은 Bean을 찾아 주입해주는 역할을 합니다. @EnableCaching 어노테이션이 사용된 경우, 의존성 주입 시에 @Cacheable이 사용된 Bean은 실제 구현체 대신 스프링에서 한번 더 감싼 .. 2021. 12. 5.
2021년 11월 이달의 생각 키워드 (이직, 3년차, 레거시, 테스트, 외로움) 이직 개발자에게 이직은 직업 특성이 된 것 같다. 인력 수급이 힘든 중소기업 입장에서는 개발자의 이직, 즉 사람의 이탈이 큰 짐이 될 테지만 그럼에도 불구하고 사람은 적당히 순환해야 한다. 이직을 통해 잃는 점들은 무엇이 있을까? 자리를 오래 지킴으로 인해서 얻는 장점들이 있다. 개발 히스토리를 파악하고 있고, 개발 도메인에 대한 이해가 깊어지며, 주변 동료들과의 유대감이 깊어질 수 있다(모두 그런것은 아니다) 그래도 이직을 해야하는 이유는? 한 자리에 오래 있다 보면 익숙함으로 인해 변화하지 않는 것, 개선할 수 있음에도 유지하는 것들이 생긴다. 의식적인 노력을 한다고 해도 바쁘다는 이유로 넘어가다보면 익숙해져 버린다. 극단적으로 고여버리면 발전하지 않는 조직이 될 수도 있다. 왜? 지금 상태로도 잘 .. 2021. 11. 21.
개발자는 뭐하는 사람일까? 개발자가 해야하는 일? 코드 작성 코드는 뭐하러 작성할까? 사용자의 요구사항을 충족하는 서비스 개발 개발한 서비스 유지보수 객체지향의 사실과 오해에 따르면, 변화하는 요구사항에 대응하는 사람. 그렇기 때문에 변경에 대응할 수 있도록 설계해야 한다. 그러기 위해선 "잘" 짜야한다. 코드를 읽는 대상은 둘이다. 사람과 기계. 개발자는 사람과 기계 사이에서 통역하는 역할을 한다. 기계와 대화하기 위한 스킬 기계에 대한 이해 네트워크 운영체제 프로그래밍 언어 숙련도 성능 고려 사람과 대화하기 위한 스킬 커뮤니케이션 스킬 개발자와, 기획자와, QA팀과, 고객과 대화해야 한다. 글쓰기 & 말하기 아는 것을 글로, 말로 설명할 수 있어야 한다. 잘 읽히는 코드를 만들기 위해서는 잘 쓸줄 알아야 한다. 클린 코드 2021. 11. 15.
[Concurrency in go] 비정상 고루틴의 치료 Go 동시성 프로그래밍(concurrency in go) 책의 5장 비정상 고루틴의 치료 부분을 참고하여 스터디 발표용으로 작성한 자료입니다. 코드는 여기서 볼 수 있습니다. ⚠️ 주의! 함수 반환, 클로저 등의 설명이 발표자의 언어로 충분히 번역되지 않았습니다. 비정상 고루틴의 치료 치료 고루틴이 건강한 상태인지 확인하고 건강한 상태가 아니라면 재시작하는 메커니즘 치료하기 위해 생존여부를 확인하려는 목적으로 하트비트 패턴을 사용. 패턴사용시 작업을 잘 수행하고 있다는 추가 정보를 포함시켜야 함. 이 절에서는 단순화를 위해 고루틴의 작동여부만을 고려 나쁜 상태에서 스스로 회복하는 방법을 알아내기 위한 작업을 수행하는것이 고루틴의 관심사가 되어서는 안된다. 하트비트 동시 프로세스가 외부로 생존 신호를 보내.. 2021. 11. 7.
주니어 개발자의 우당탕탕 이직기 다른 사람의 이직기를 보면서 공감, 위안, 도움을 얻었다. 이 글도 누군가에게 도움이 되기를. 전 회사 전 회사(A사라고 하겠다)는 나의 첫 회사였다. 사실 이 글을 쓰기 전에 A사 이야기를 글로 풀어보려 했는데 너무 부정적인 분위기의 글을 작성해버렸다. 남들에게 공개하기 조심스러워 일단은 깊숙이 잘 숨겨두었다. 가볍게 언급만 하자면, 안타깝게도 나는 A사에서 개발자로써 성취감이나 자부심을 가질 수 없었다. 나는 회사를 인터넷으로 배운 신입 개발자였고, 개발 조직에는 당연히 개발 문화가 있고 열정적으로 일할 것이라고 생각했다. 그러나 그곳은 내가 아는 개발 조직과는 조금 다른 곳이었다. 부정적인 마인드로 스스로를 갉아먹었는데 그러다보니 몸과 마음이 점점 병들어갔고, 여기저기 아프기 시작했다. 여기에다 팀.. 2021. 10. 24.
GORM 맛보기 1 - 퀵스타트 이 글은 공식 홈페이지의 Quick Start 가이드에 설명을 덧붙이는 형태로 작성되었다. ORM이란? Object Relation mapping. 객체와 db를 매핑해주는 것. 매핑된 정보를 바탕으로 자동으로 SQL을 생성해준다. 자세히 설명된 블로그가 있어 링크로 대체한다. Golang의 ORM 과거에는 XORM(솜)을 사용했으며 현재는 GORM(곰)이 많이 사용되는 것으로 보인다. Quick start gorm 공식 홈페이지에서 제공하는 quick start를 약간 변형하여 사용했다. db는 docker postgresql을 사용하였다. docker run --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=1234 -d postgres package main .. 2021. 8. 29.