728x90
백준 1012번 문제 파이썬 "💡 문제 해결 아이디어" 유기농 배추 문제는 완전 탐색을 통해 해결해야하는 문제이다. 본인은 dfs를 통해 해결하였다. 0,0부터 n-1,m-1 까지 모두 돌며 값이 1인 곳(배추가 심어진 곳)을 찾는다. 지렁이는 상하좌우로 퍼져나갈 수 있기 때문에, 배추가 심어진 곳을 발견하면 그 구간에서 dfs를 돌려 인접해있는 1들을 모두 0으로 변경하고 1을 카운트한다. 이렇게 하면 인접해 있는 배추 그룹의 갯수를 전부 파악할 수 있어 지렁이가 총 몇 마리 필요한 지 구할 수 있다. "❗ 런타임 에러(RecursionError) 해결" dfs를 사용하면 편리하지만 벡준에서 지정한 기본 재귀 depth 때문에 런타임에러가 발생한다. 때문에 sys.setrecursionlimit()을 ..
Jenkins AWS Github Docker 사용한 CI/CD 구축 안녕하세요. 이번 시간엔 요즘 학습하고 있는 Docker, Jenkins와 Github, AWS를 사용하여 SpringBoot 서버 CI/CD 구축을 진행하는 과정을 보여드리겠습니다. 현재 완벽하게 숙달된 상태가 아닌, 여러 자료들을 찾아보며 처음 성공했던 과정을 기록하는 것입니다. 혹시라도 잘못된 부분이 있다면 댓글로 지적 부탁드리겠습니다!! 바로 시작해보겠습니다. 사용하는 도구 및 환경 Mac Spring boot gradle 7.2 AWS 프리티어 EC2 2대 (젠킨스용,운영용) AWS RDS AWS Secret Manager Mysql Jenkins Java 11 Docker IntelliJ DockerHub Github Int..
우아한 테크코스 5기 최종 코딩테스트 후기 우아한 테크코스를 프리코스부터 최종 코딩테스트까지 겪으며 정말 많은 것을 배웠고 많은 감정을 느꼈다. 내 인생에 너무나도 도움이 된 소중한 시간이었다고 느껴졌기 때문에이 감정을 회고를 통해 글로 남겨 당시의 감정과 상황을 항상 기억하고 살아가고자 포스팅을 하게 되었다. ⭐️ 우아한 테크코스 1차 합격 ⭐️ 프리코스가 종료되고 얼마 후, 최종 코딩테스트를 보러갈 권한을 얻었다는 메일을 받게 되었다. 거의 2000명 가까이 되는 지원자들 중 200명 정도 선발되는 1차를 통과했다는 사실에 기쁨이 몰려왔지만최종 테스트에선 7일 동안 구현하던 문제를 5시간 안에 풀어야한다는 사실 때문에 설렘 반 긴장 반으로 마음이 들떴다. 당시 기간이 겹쳐 있던 대학 기말고사와 최..
WAS는 Web Application Server의 약자이다. 배포할 때에는 **내장 WAS(스프링부트 기준 Tomcat)**를 사용하게 되고 빌드 시에 생성되는 jar 파일을 실행하면 서버를 가동할 수 있다. 즉, 어떤 환경이든 jvm만 있으면 간단하게 Spring boot 어플리케이션을 동작할 수 있다는 뜻이다. WAS란? 웹 서버와 웹 컨테이너의 결합체 클라이언트의 요청이 있을 때 내부의 프로그램을 통해 응답을 생성하고 이를 돌려주는 역할을 하는 것이다. 스프링부트에서는 Apache tomcat이 이와 같은 역할을 하며 Servlet Container라고 불린다. spring-boot-starter-web 라이브러리는 자체적으로 spring-boot-starter-tomcat을 포함하기 때문에 해당..
나에 대한 실망이 가득했던 저번 주차를 극복하고 마지막 주차는 제법 만족스러운 결과물을 완성하였다. 지난 3주차를 진행하는 과정에서 익숙하지 않았던 UI / Domain 로직을 분리하는 일 그리고 Enum 클래스를 통해 유사한 성질의 데이터를 묶어서 관리하는 일은 큰 벽으로 느껴졌다. 때문에 만족스러운 결과물을 만들어내지 못하였고 이를 극복하기 위해 모든 주차 중 가장 많은 시간을 4주차 과제에 투자하였다.부족했던 부분에 관한 내용을 디테일하게 정리하고 학습하며 아쉬웠던 부분을 보완해나갔다. SRP원칙을 기준삼아 하나의 객체는 하나의 책임을 가지게 하며, 메서드는 기능 단위로 작게 분할해나가는 등 저번 과제보다 훨씬 객체지향에 가깝게 구현해나갔다. 많은 시간을 투자한 덕분에 이해도가 낮아 저번 주차에서 ..
.gitIgnore 란? 인텔리제이와 같은 VCS를 지원하는 IDE를 사용하게 되면 gitIgnore 사용은 불가피하게 된다. gitIgnore를 사용하는 이유는 중요한 파일이 깃허브에 공개되지 않도록 막는 데에 있다. 만약 서버의 DB관련 패스워드와 아이디 정보가 담긴 application.yml이 있다고 가정해보자. 이 파일이 깃에 그대로 올라가서 누군가 마음대로 DB를 망가뜨리게 되어도 괜찮은가? 이를 해결하기 위해 사용하는 것이 gitignore이다. .gitIgnore 적용이 안되는데요? gitignore에 등록을 해도 commit List에 파일이 올라가있는 경우가 있다. 대체 왜이러는 걸까? 분명 gitIgnore에 추가해줬는데? 원인은 캐시 때문이다. 실제로 .gitignore 파일은 변경..