
프로젝트가 어느 정도 안정기에 들어감에 따라 시간이 많이 들어가는 작업들을 자동화하고 있다.그중, 테스트 서버에 배포하는 과정을 자동화 한 경험과 트러블슈팅.테스트 서버의 특징은 배포되는 브랜치가 정해져 있는 게 아니라 매번 현재 작업 중인 기능을 테스트할 때마다 브랜치를 옮겨 다닌다.기존에는 직접 ssh로 원격 서버에 접속해서 git branch를 옮겨 다니며 직접 pm2로 프로젝트를 실행시켜 줬다.개발자가 직접 원격에 접속하고, 명령어를 하나하나 입력하고 혹은 빌드 에러나 예상치 못한 에러가 발생하는 경우 갑작스레 pm2 프로세스가 완전히 내려가버리는 일도 있어서 "지금 ~~~ 한 작업 중이라 테스트서버 접속 이상 있다"라고 소통해야 하고 팀원들에게 불편을 초래하는 경우도 있었다.이런 일을 없애고 개..

C에서 함수를 선언하고 호출하기 위해서는 main함수 위에 함수원형을 먼저 선언해야 한다고 배웠습니다. 왜 그럴까요? js의 함수 선언문과 함수 표현식은 호이스팅에 의해 선언과 호출의 위치가 중요한데, 궁금해지네요. C언어 - 원형선언이 필요한 경우 #include int sum(int a, int b); int main(){ int s; s = sum(30, 40); printf("sum from 30 to 40=%d\n", s); } int sum(int a, int b){ int i,s=0; for (i = a; i
카드결제 기능을 구현하면서 배운 내용입니다. 단순히 결제를 하는 것은 쉬웠지만, 결제 외에 할일이 많았어요. 그 과정에서 배운 것들을 정리합니다. Nextjs 14버전을 사용하므로 루트레이아웃에 포트원 라이브러리를 로드할 script를 추가합니다. 스크립트를 추가하면 window객체에 IMP 인스턴스를 사용할 수 있습니다. const { IMP } = window; IMP.init(가맹점 식별코드); IMP.request_pay(data, callback); 가맹점 식별코드는 포트원 콘솔에서 받을 수 있습니다. 공식문서 참고! 버튼의 클릭이벤트에 위 코드를 실행하면 결제창이 나오고 결제까지 할 수 있습니다. 단, 결제창을 클라이언트에서 호출하고 결제도 클라이언트 측에서 iframe을 통해 완료하기 때문에..

입사 초기에 다른 개발자님이 스토리북 작성하는 법에 대해 간단히 알려준 적이 있었다. 하지만 나는 스토리북의 쓰임새에 공감하지 못했고 스프린트 하기도 바쁜데 스토리북으로 컴포넌트 관리까지 해야 한다는 것에 공감하지 못했고, 흐지부지 되어서 스토리북은 머릿속에서 사라졌다. 어느새 나도 곧 2년 차 개발자가 될 정도로 시간이 흐르면서 여러 사람들과 프로젝트를 동시에 진행하고 두세 개의 다른 프로젝트 환경을 겪으면서 불편함이 느껴지기 시작했다. 가장 큰 불편함은 이미 구현되어 있는 재사용 컴포넌트를 내가 찾지 못해서 다시 만드는 경우가 있었고 기획자나 디자이너가 생각하기에는 예전에는 요구사항에 있었던 건데, 내가 새로만든 컴포넌트는 과거의 요구사항들을 충족하지 못하니 두 번 소통해야 하는 일들이 생겼다. 그리..

이 글의 이미지는 위키독스의 visual studio 사용자를 위한 git이라는 e-book을 출처로 합니다 오늘도 열심히 개발하고 테스트 서버에 코드를 병합하던 중, 첫 출근 날 다른 개발자분이 '병합은 스쿼시로 해주시면 되고요..'라는 말을 듣고 습관처럼 스쿼시 병합을 하던 중 병합전략? 다른것들을 뭘까 나는 왜 스쿼시 병합을 하고 있을까?라는 생각이 들어 글을 쓰게 되었다. 하나씩 실습하면서 알아보자 일단 이상태를 만들어 준다 main에서 feature브랜치를 따고 두 개의 커밋이 ff 상태로 추가된 상태다. 1. git merge --ff-only --ff-only (fast-forward only) 옵션은 현 브랜치와 merge 대상 브랜치가 fast-forward 관계에 있는 경우 새로운 co..

나에게 git공부를 하게 만들었던 녀석이다. 이게 무슨 소린지 몰라서 너무 많은 분들을 오래 기다리게 했다. 이제 책 한권 봤으니 쟤를 뜯어보자. 1. git config pull.rebase false 일단 위 상황을 만들기 위한 세팅을 완료했다. 나의 로컬저장소는 첫 번째 커밋만 있고 원격저장소에 누군가 두 번째 커밋까지 올려놓은 상태이다. 이제 첫번째 커밋을 base로 하여 충돌이 발생하는 두 번째 커밋을 만들고 푸시를 해보자 원격에 로컬에 없는 작업이 있어서 거부되었다. 대게 같은 저장소에 다른 누군가가 푸시를 했을 때 발생한다. 꽤 친절하다. 즉 아래와 같은 상황이라서 push 할 수 없게 되었다. 그러면 먼저 Pull해서 상황을 해결해 보자 만났다. 서로 다른 브랜치가 있어서 이를 조정하는 방..