전체 글 135

부트캠프 비전공자 이야기

4주차에 접어들면서 java가 시작되었다. 수강생들간의 편차가 가장 큰 과목이 java 일것 같아서 우려를 많이 했고, 실제 강의를해보니 편차가 심해도 너무 심하다. 누군가는 변수할당도 어려워하고 if문 사용도 버거워하지만, 다른 누군가는 프로그래머스 순위에 랭커로 들 정도로 편차가 심하다. 최대한 쉬운 강의를 지향하고자 했으나, 나도 모르게 강의에 속도와 탄력이 붙어버려서 비전공 수강생들이 많이 어려워 했고, 또 그렇게 피드백을 주는 것을 보면서 조금 더 천천히 가야 겠다는 다짐을 했다. 비전공 전공이라는 키워드가 SW개발자 분야를 시작하는 사람들의 가장 큰 화두인것 같다. 비전공이라 어렵다. 전공이라 할만하다. 그런데, 돌이켜 보면 각자의 전공을 대학4년동안 듣고 공부하는 시간이 얼마나 될까. 1학년..

부트캠프에서 하향평준화가 아닌 상향평준화

이번주에는 감기 때문에 엄청 고생을 했다. 바빠서 제대로 진단을 못받아봤는데, 아무래도 독감인것 같다. 몇년에 한번 걸리다 시피 할정도로 감기에 강한 나인데, 하필 가장 바쁘고 가장 집중해야 하는 시기에 감기에 걸려버렸다. 아파도 일을해야 하는 입장인지라, 아프다는 사실 자체를 무시하려고 최대한 애를 썼다. 결과적으로 투혼을 발휘해서 이번주도 무사히 마무리했지만, 투혼이라는 생각도 하고 싶지 않았다. 힘들다는 생각 자체를 항상 배제하려고 하는편인데, 나름 효과적인 방법이다. 이번주에는 주로 협업을 위한 기술들에 대해 강의했다. wbs, jira와 같은 프로젝트 관리 툴에 대해 강의했고, git/github을 실습을 위주로 수업했다. 우리 수업은 어떤 과목이든 가벼운 수준의 소개에서 그치는것이 아니라 다소..

몸살걸린 한주(feat.정진혁시인)

한화시스템 beyond sw 부트캠프가 시작된지 2주가 지났다. 2주간 linux와 database(mariadb)에 대한 강의를 했고, 이제 거의 database가 끝나간다. 사실 그동안 db 강의를 해오면서 DB에 이 정도 여유있는 시간이 주어진 적이 없었고, 다소 깊이 있는 주제들. 예를 들어 동시성 이슈, 정규화, db 모델링 같은 부분은 가볍게 언급만 하고 넘어갔었던 것 같다. 그러나, 이번에는 충분한 시간이 주어졌던만큼 최대한 깊이있게 위 주제들을 충실히 다루려고 했다. 미리 대부분의 강의 자료를 다 준비해놨음에도, 매일같이 부족함을 느꼈고 매일 일찍 출근 늦게 퇴근을 반복하며 추가자료를 준비했다. 전날 수강생이 어려워하거나 내가 만족하지 못한 강의는 다음날 다시 설명하기 위해 자료를 다시 준..

개발자에서 부트캠프 강사로의 커리어 전환

2016년에 SK에서 java/spring 개발자로 커리어를 시작한 이후로 올해로 8년차 개발자가 되었다. 첫직장인 SK에서 6년가량 일했고, 스타트업을 2년가량 거치며 개발팀장 경험도 할수 있었다. java, node, python, c/c++ 등 다양한 언어를 실무에서 사용했고, 레거시 서버에서부터 aws, 쿠버네티스까지 다양한 서버환경도 경험할 수 있었다. 실무에서는 항상 자원해서 일을 떠맡았기에, 백엔드 개발자이면서도 flutter앱개발, 임베디드까지 닥치는대로 경험하고 또 배우려고 노력했던것 같다. 그러면서 동시에 좀 더 깊이있게 성장하고 싶은 마음이 항상 한켠에 있어왔고, 프로그래밍을 가르치는 일을 해보면 나의 성장에도 좋을것 같다는 생각을 해왔었다. 그래서 기회가 되는대로 강의경력도 틈나는대..

쉽고 빠르게 재무제표(재무상태표, 손익계산서) 보는법

이글에서는 주식투자를 위해 최소한의 재무제표를 볼수 있는 지식을 제공하고자 한다. 국내에 상장된 회사의 자세한 재무제표를 보고 싶다면, https://dart.fss.or.kr/ 에서 회사명을 검색한 뒤에 여러 보고서 중에, 아래와 같이 사업보고서를 찾아서 그 중에 재무에 관한 사항에서 요약재무정보를 보면된다. 먼저, 재무제표 부터 살펴보자. 재무제표는 재무상태표 + 손익계산서를 의미한다. 이 중 재무상태표는 아래와 같이 현재시점의 기업의 재무상태를 의미한다. 회계의 기본인 자산(차변-왼쪽) = 부채+자본 (대변-오른쪽)으로 구성이 된다. 회계에서 재무상태표의 차변과 대변은 어느 한쪽이 늘어나더라도 같이 늘어나는 특성을 가지고 있다. 예를 들어) 회사가 당해에 사업을 잘하여 이익이 늘어나게 되면, 대변의..

투자 및 경영 2023.10.08

기업 재무관련 핵심지표 정리

per, pbr등 주식투자에서 중요하게 사용되는 여러 지표에 대한 의미와 활용에 방법에 대해서 정리해 본다. PER(Price/Earning Ratio) : 주가수익률 의미: 주식의 가격을 당기 순이익(또는 예상 순이익)으로 나눈 값. 기업의 주식 한 주당 수익에 대한 시장의 평가를 의미 활용: P/E가 높다는 것은 주식의 가격이 상대적으로 높다는 것을 의미. 반대로 낮은 P/E는 주식이 상대적으로 저평가되었다는 것을 의미. PER의 평균치는 업종에 따라 다르고, 향후 기대되는 순이익 수치가 높은 IT업종은 30배 이상의 상대적으로 높은 PER을 보임. PBR(Price/Book Ratio) : 주가 자산률 의미: 주식의 가격을 자기자본(순자산가치)으로 나눈 값. 기업의 주식 한 주당 자본에 대한 시장의..

투자 및 경영 2023.10.08

eks 컨테이너 배포 및 라우팅 절차

aws의 eks를 활용해 백엔드 서버 배포 파이프라인을 구축 하는 방법에 대해 정리 하고자 한다. test용 서버 같은 경우엔 https가 필요 없을수도 있겠지만, 여기서는 http, https 프로토콜 통신이 가능한 배포를 가정하고 진행하도록 하겠다.(https때문에 많은게 복잡해짐) 1)aws cli 프로그램 설치 2)aws configure 명령을 통해 AWS CLI를 설정. AWS Access Key ID, AWS Secret Access Key, Default region name 등 3)kubectl 설치 및 helm설치 1.eks 클러스터 생성 1)버전, 이름 등 선택 2)iam역할 : awseksclusterrole 선택 3)별도 암호화 선택 없이 진행 4)VPC, subnet, 보안그룹..

chat GPT를 활용하여 템플릿엔진(타임리프)에서 react(react-native)로 리팩토링해보기

일단 나는 react나 vue.js와 같은 프론트엔드 프레임워크에 대해서 잘 알고 있지는 않다. 그래서, 개인프로젝트하거나 서버API를 화면을 통해 테스트를 할때에 주로 타임리프와 같은 템플릿엔진을 사용해 화면을 만든다. 최근에는 기존에 만들어둔 템플릿엔진을 통한 화면들을 react로 리팩토링 해보고자 끙끙댔었는데, chat GPT의 도움을 받아 변환시켜보니 매우 수월하게 작업을 완성시킬 수 있었다.(변환된 코드를 보고싶으면 여기 github코드를 참고하시길바랍니다.) 그러나, react에 대한 지식이 부족하다보니 코드는 변환시켰지만 큰 틀에서 프로젝트 구조는 다소 유치한 수준이라는 감안하길 바란다. 더불어, react에서 react_native 코드도 변환시켜보니 같은 React이다 보니 보다 더 ..

카카오뱅크 해외송금 서비스 구현해 보기

간편송금업체에 개발자로 일하다보니, 타 업체들의 서비스는 어떻게 돼 있는지 분석할때가 있다. 카카오뱅크 해외송금 서비스가 어떻게 돼 있는지 궁금하여 UI를 틈틈히 분석 하여 DB설계 및 rest api를 구현해 보았다. 자세한 코드는 여기 github 코드 참고 일단, 카뱅 SWIFT 해외송금 화면은 아래와 같이 생겼고, swift 송금 중에 미국(USD)송금만을 분석해보았다. 참고로, 카뱅의 송금서비스가 서버단에서 어떻게 구현돼 있는지는 나는 전혀 알지 못한다. 단지 UI만을 분석하여 서버API를 설계해본 것이다. 기본적으로 해외송금은 고객으로부터 KRW기준으로 돈을 수령하여 환전 후 국제송금망(SWIFT)를 통해 해외로 송금을 보내는 것이다.(swift를 사용하지 않을때도 있긴하다) 국제송금망을 통해..

DB동시성 문제와 격리성

일단, DB격리성이란 무엇인지에 대해 알아보자. DB 격리(Isolation)성은 관계형 데이터베이스에서 여러 개의 트랜잭션이 동시에 실행될 때, 각각의 트랜잭션들이 서로에게 영향을 미치지 않도록 데이터 일관성과 동시성을 보장하는 개념이다. 여러 개의 트랜잭션이 동시에 실행될 때 발생할 수 있는 문제점으로는 다음과 같은 것들이 있다. Dirty Read : 한 트랜잭션이 다른 트랜잭션이 수정 중인 데이터를 읽을 수 있는 문제이다. 예를 들어, A트랜잭션이 데이터를 update만 하고 아직 commit하지 않았는데, B트랜직션이 조회했을때 update한 사항이 조회가 되는 상황이다. 이게 왜 문제가 되냐면, A가 어떠한 이유에 의해서 트랜잭션을 rollback했을때 B는 잘못된 값을 알고 있게 되는 꼴이 ..