CI/CD 기본 개념 정리와 툴
·
개발 아카이브/개발 관련 지식
CI/CD 란? CI : Continuous Integration 지속적 통합 소프트웨어를 개발하면서 새로운 코드를 작성하거나 코드를 변경하고 빌드 및 테스트하여 공유 리포지토리에 통합되는 것을 말합니다. CI개발을 하려면 개발자들은 코드를 추가, 변경하면 주기적인 일정마다 공유 리포지토리에 병합시켜줘야 합니다. 만약 주기적으로 리포지토리에 공유하지 않고 오랜 시간이 지난 후 병합을 하면 아주 큰 컨플릭트(충돌)가 일어나겠죠? 작은 컨플릭트라면 그나마 다행이지만, 오랫동안 개인만의 개발을 한다면 나중에 병합을 할 때 큰 컨플릭트가 날 확률이 높습니다. 그래서 요즘 IT 기업들은 개인주의 성향의 개발자보다 커뮤니케이션을 중요시하는 개발자를 선호한답니다. CI는 빌드, 테스트, 병합이 모두 자동화되어야 합니..
[CSS] CSS 텍스트 줄이기 ... 표시
·
개발 아카이브/HTML, CSS
제목만으로 어떤 말인지 알기가 힘든데 그림으로 어떤 내용을 포스팅할지 보여드리겠습니다. 게시판이나 리스트의 제목을 줄이는 방법입니다. 엄청나게 긴 글을 게시판 리스트에 표시한다면 제목이 칸 밖으로 넘어가거나 줄 바꿈이 됩니다. 공간의 크기를 늘려서 보기 싫게 만드는 모습. 바꾸고 싶으실 겁니다. 어떻게 바꾸시겠습니까? 자바스크립트로 for문으로 DOM탐색해서 제목 요소를 하나하나 선택하고 특정 글자 수까지 표현하실 건가요? CSS를 이용해서 클래스 하나만 추가하면 일괄적으로 쉽게 변경할 수 있습니다. 방법 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; CSS의 class에 위의 코드를 입력하는 것이 키워드입니다. 위의 코드가 모두 있어야..
[Python]NHN 채용 공고 크롤링, 검색, 추출 코드
·
개발 아카이브/코드 저장소
다른 기업 채용사이트에 비해 NHN 채용사이트는 특정 키워드로 검색하는 기능이 없길래 심심해서 만들었습니다. 필수 라이브러리 requests BeautifulSoup 코드 import requests from bs4 import BeautifulSoup from datetime import datetime URL = 'https://recruit.nhn.com' param={'type':'company'} recruit_list = [] selected_recruits = [] # 채용공고 리스트 추출 print('>> 리스트 추출 중...') responce = requests.get(URL + '/ent/recruitings', params=param) html = BeautifulSoup(respo..
[Spring] 스케줄러 Cron 사용하기
·
개발 아카이브/JAVA
스프링 프로젝트를 개발하면서 시스템이 커지고 DB 또는 다양한 서비스를 위해 어떤 모듈들을 주기적으로 실행해야 할 때가 옵니다. 그럴 때 사용하는 것이 스케줄러입니다. 스프링에서 스케줄러 사용방법은 쉽습니다. servlet-context.xml에서 task namespace를 추가하고 bean을 참조하여 cron 표현식으로 언제 주기적으로 등록한 메서드를 실행할지 선언만 해주면 됩니다. 스프링 프로젝트를 구축하고 간단하게 따라해 봅시다. 1. servlet-context.xml에 scheduled-tasks 추가 servlet-context.xml에 namespace에서 task를 추가합니다. 그럼
[JAVA] Properties 파일 읽기 메서드
·
개발 아카이브/JAVA
🔍 설명 하드코딩을 피하고 중요한 키나 패스워드는 코드에 직접 입력하지 않고 외부 파일에서 읽어 사용합니다. 그럴때 보통 Properties 파일을 많이 사용합니다. 공통적으로 많이 사용하기도 하고 가끔 필요할때 사용하기 쉽게 코드를 공유합니다. 아래의 readProperties 메서드의 argument는 Properties 파일 상대경로 입니다. 그리고 입력한 경로로 읽어낸 Properties 객체를 반환합니다. 📝 파라미터 예시 : properties/db.properties ✅ Properties 파일 읽기 메서드 : readProperties 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 /** * prop.getPropert..
MarkDown을 편하게 작성하기 위한 도구들
·
개발 아카이브/개발 관련 지식
개요 MarkDown은 가독성이 좋은 글이나 문서를 쉽고 빠르게 만들 수 있습니다. 그래서 특히 Github에서 많이 사용하고 있습니다. 하지만 MarkDown은 마크업 언어이기 때문에 작성하다 보면, 자신이 작성한 글이 잘 나오는지 확인하거나 이미지나 표가 잘 나오는지 확인하기 힘듭니다. 그리고 이미지나 링크, 표 등의 문법을 입력하는 것은 까다로운 부분도 있습니다. MarkDown을 편하게 사용할 수 있도록 도와주는 몇가지 프로그램들을 소개하겠습니다. 프로그램 소개 VS Code Plugin MarkDown은 개발자들이 글을 적을때 많이 사용하는 마크업 언어입니다. 그리고 VS Code는 개발자들이 많이 사용하는 에디터이자 IDE입니다. 실제로 VS Code에 MarkDown 형식의 파일을 작성할 수..
티스토리 markdown 스킨 적용하기
·
개발 아카이브
주의 이 포스트 내용은 현재 이 블로그에 사용되는 스킨에 적용되지 않습니다. 오히려 깨지는 상황이 일어나고 스킨마다 적용 적합성이 다릅니다. 주의하시기 바랍니다. 소개 티스토리에 깃허브의 MarkDown 양식처럼 스킨을 입혀서 포스팅을 할 수 있습니다. 이 MarkDown 스킨은 아래와 같은 특징이 있습니다. 현재 적용중인 스킨에 영향을 받지 않습니다. 단, 1개의 css link를 연결하고, css 일부만 수정하면 됩니다. MarkDown 형식의 포스터를 필요시에 선택적으로 적용할 수 있습니다. 사용법 잘 하시는 분들은 아래의 링크로 이동하여 readme를 보고 적용하실 수 있습니다. https://github.com/sindresorhus/github-markdown-css sindresorhus/g..
[myBatis] mybatiseditor - SQL Mapper DTD 설치
·
개발 아카이브/JAVA
myBatis를 사용할 때 SQL Mapper XML을 사용하여 쿼리문을 작성하게 됩니다. 하지만 쿼리문 작성은 익숙해도 SQL Map을 작성하는 것은 익숙하지 못합니다. MyBatis를 작성할 때 사용되는 태그들은 여러 가지 많습니다. 이 태그들은 전체 외울수도 없고, 하나하나 타이핑하는 것이 불편하죠. 이럴 때 IDE의 자동완성 기능이 절실한데 대부분 IDE는 모든 XML의 형식을 알지 못합니다. DTD 란? 그렇습니다 XML이 구조를 가지려면 그 구조를 정의해주는 DTD가 필요합니다. MyBatis Sql Map DTD만 가지고 있으면 이클립스가 태그를 자동 완성도 해주고 작성도 편하게 해 줍니다. 위의 XML과 같이 등등.. 그리고 parameterClass, resultClass, propert..
[MAVEN] m2e 문제 - cannot nest inside to enable the nesting exclude
·
개발 아카이브/JAVA
Maven 프로젝트로 WebApp을 만들때 다음과 같은 창이 뜰때가 있습니다. Finish든 Cancel이든 클릭 후 프로젝트를 확인하면 source directory가 src로만 잡혀 있습니다. 그래서 프로젝트 디렉터리 구조가 아래와 같게 됩니다. 이유는 m2e가 source directory를 src/main/java가 아닌 src/로 만들어버립니다. 그래서 프로젝트 properties > java build path 로 들어가면 source 경로가 하나밖에 없습니다. 해결방법 아래의 src 를 Remove 합니다. 그리고 프로젝트 오른쪽 클릭 > Maven > Update Project를 합니다. 그럼 프로젝트는 다음과 같이 프로젝트 구성이 달라지게 됩니다. 이 다음 Maven 프로젝트 세팅을 마치..