전체 글 (19) 썸네일형 리스트형 도커란 | 사용 이유 | 기본 명령어 정리 왜 도커가 필요할까?[상황 1] 나는 맥 환경에서 자바17을 사용하고, 다른 개발자는 윈도우 환경에서 자바11을 사용한다. 내가 작성한 record 클래스는 그의 환경에서 제대로 동작하지 않을 것이다. 이러한 상황에서 도커를 도입한다면?[상황 2] 사용 중인 JDBC 라이브러리를 새로운 버전으로 업데이트 하고싶다. 팀원들과 수동으로 환경을 맞추어 개발하고 있다면 어떤 버전으로 업데이트 할지 등을 공유해야 한다. 귀찮고 오류 발생 확률도 높다. 하지만 도커로 개발 환경을 관리하고 있었다면? [상황 3] 현재 진행 중인 총대마켓 프로젝트에 새로운 신입이 합류했다. 신입의 개발 환경을 세팅해 주어야 한다. 내가 로컬에서 개발하고 있는 환경을 신입에게 일일이 설명하고 설정해야 한다. 너무 귀찮다. 이 때 도커.. OG 메타 태그 크롤링하여 이미지 추출하기 | Jsoup 구현 상황작년 겨울 프윗 웹 서비스를 개발할 당시, 다음(daum) 뉴스 목록을 크롤링해야 하는 상황이 있었다. 뉴스의 일부를 우리 서비스에서 미리보기로 제공하고, 클릭 시 해당 뉴스 기사 사이트로 이동하도록 해야했다. 메타 태그의 존재를 몰랐던 그 때의 나는, 기사 HTML 파일 내 원하는 태그의 클래스와 아이디를 기준으로 열심히 정보를 추출했다. 그 당시엔 크롤링으로 정보를 가져온 내가 무척 대견했다. 하지만 오픈그래프의 존재를 알아버린 지금, 과거의 내가 더 대단하게 느껴진다.OG와 메타 태그에 대해 알고 있었다면, 그리고 다음 뉴스가 메타 태그를 제공한다는 사실을 알고 있었다면 더욱 간단하게 코드를 완성했을 것이다. 훨씬 적은 시간 리소스를 들였을 것이다. 겁없이 무식하게 도전해 내 방식대로 성공시킨 .. [코리스토텔레스] 패키지 구조: 계층형 구조 vs 도메인형 구조 https://github.com/woowacourse-6th-team99/2024-coristotle/discussions/3 패키지 구조: 계층형 구조 vs 도메인형 구조 · woowacourse-6th-team99 2024-coristotle · Discussion #3패키지 구조를 계층형 구조로 생성하는 것이 좋을까, 도메인형 구조로 생성하는 것이 좋을까? 계층형 구조 예시 controller ⎿ ProductController ⎿ MemberController ⎿ ArticleController service ⎿ ProductService ⎿ github.com 코리스토텔레스는 본인의 설계에 철학을 갖기 위한 토론 스터디입니다. 해당 스터디에서 주장했던 입장을 정리한 글이므로, 저의 사견이 개입.. [협업] 한 달 간의 고진감래 https://youtu.be/SIuF37EWaLU?si=BfCObIwG7VtW6HXL Q. 한 달 간 팀 프로젝트를 진행하며 감정 상태의 변화가 긍정적으로 바뀐 경우 긍정적으로 바뀐 상황, 이유를 떠올려 보고 이를 한 단계 더 개선하기 위해 어떤 시도를 하면 좋을까요? 1주차 (기획 + 팀빌딩)당황스러움, 화남, 불안함, 답답함, 초조함 나는 함께 하는 사람이 좋을 때 힘이 난다. 레벨2에서 크루들에게 이런 질문을 자주 했다. “성격이 정말 안 맞는데 일 잘 하는 크루 vs 일을 못하는데 성격이 정말 잘 맞는 크루” 중 누구와 함께 프로젝트하는 것이 좋은가? 나는 항상 후자를 택했다. 그만큼 레벨3 프로젝트 조 크루들에 대한 기대감이 높았고 나와 성격이 잘 맞는 사람이길 바랐다. 그러나 레벨3 프로젝트.. CI/CD란 | Github Actions 사용해보기 요구 사항작년 여름 참여했던 북링크 프로젝트에서, 백엔드 코드에 변경 사항이 발생할 때마다 깃허브 pull, 빌드, 서버 내리고 올리기 과정을 반복했다. 모든 자잘한 작업들이 수동이었기 때문에 명령어를 입력할 때 실수가 자주 발생했고, 가끔은 서버 업데이트를 잊어 프론트엔드에게 미안한 상황도 종종 발생했다. CI/CD에 무지했기 때문에 발생했던 불편함이었다. 이번 프로젝트에서는 그럴 일이 없도록 CI/CD를 적용해보자! 용어 정리컴파일: 소스코드 → 기계어 (ex. 영어 글 → 한글 글)빌드: 소스코드 → 컴퓨터에서 실행 가능한 소프트웨어 산출물, 빌드에 컴파일이 포함되어있음 (ex. 글 → 책)배포: 빌드 결과물을 사용자가 접근할 수 있는 환경에 배치 (ex. 책을 서점에 배치) CI/CD테스트, 통합.. [인프라] AWS EC2 EC2Elastic Compute Cloud컴퓨터를 빌려 원격으로 접속해 사용하는 서비스주로 백엔드 서버 배포에 사용, 프론트엔드는 다른 서비스를 더 많이 이용사용 이유내 컴퓨터로 서버를 배포하는 경우 24시간 동안 컴퓨터를 켜놓아야 하므로 번거로움내 컴퓨터로 서버를 배포하는 경우 보안적으로 위험여러 부가기능 제공Region인프라를 지리적으로 나누어 배포한 각각의 데이터 센터EC2는 region마다 따로 관리됨각 region은 고유의 이름을 가짐 (ap-northeast-2, us-east-1 등)선택 기준사용자의 위치와 어플리케이션을 실행하고 있는 컴퓨터의 위치가 멀수록 속도는 느려짐주 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리EC2 설정하기애플리케이션 및 OS 이미지어떤 OS를 가.. 문서화 도구 Swagger vs Spring REST Docs 앞으로 팀 프로젝트에서 필요할 사전 지식을 전날 준비하기로 다짐했다.노션에 틈틈이 기록해두는 것에 그치지 않고, 부족하지만 블로그에 정제된 문장으로 기록하는 연습을 해보겠다!SwaggerOAS를 기반으로 구축된 오픈소스 도구 세트로, REST API를 설계, 빌드, 문서화하고 사용하는 데 도움이 된다. * OAS: Open API Specification(이전 Swagger Specification), Rest API에 대한 API 설명 형식 일단 적용해보기확실히 Spring REST Docs 문서를 생성해본 후 Swagger를 적용해보니, 신세계였다. [TroubleShooting 1] Swagger UI를 제공하는 라이브러리를 선택할 때 많은 레퍼런스에서 springfox를 사용하여, 나도 같은 라.. [TroubleShooting] 에러 해결 과정에서 알게 된 @DirtiesContext 동작 방식 나의 상황@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)class ThemeDaoTest { private final JdbcTemplate jdbcTemplate; private final ThemeDao themeDao; private final SimpleJdbcInsert themeInsertActor; @Autowired public ThemeDaoTest(JdbcTemplate jdbcTemplate, ThemeDao themeDao) { .. 이전 1 2 3 다음