본문 바로가기

분류 전체보기

(454)
2. 스프링 웹 개발 기초 정적 컨텐츠 MVC와 템플릿 엔진 API 정적 컨텐츠 html 파일 그대로 Client에게 보내준다. MVC와 템플릿 엔진 MVC: Model, View, Controller 템플릿 엔진을 가지고 Request에 따라 HTML 파일을 변경한 후 Client에게 보내준다. 아래 사진처럼 HelloController를 만든 후 url에서 hello-mvc를 호출 할 수 있도록 Get 메서드를 만든다. @RequestParam은 URL 파라미터에서 value에 해당되는 값을 가져온다. Ex.) localhost:8080/hello-mvc?name=Lisa&age=18 이면 Lisa를 String name의 인자값으로 가져온다. 기본은 required=true이므로, false로 안바꾸면 name이 없을 시 에..
1. 프로젝트 환경 설정 프로젝트 생성 스프링 부트 스타터로 프로젝트 생성 스프링 부트 스타터 사이트에서 스프링 프로젝트 생성 https://start.spring.io/ Project Maven Project, Gradle Project 선택. 요즘은 Maven에서 Gradle로 넘어가는 추세라고 한다. Spring Boot SpringBoot 버전 선택. Snapshot, M3같은 미정식 버전을 제외하고 최신 버전 선택함. SnapShot: 거의 매일 찍어내는 버전. 데일리 빌드 버전 M(Milestone): 팀이나 프로젝트에서 정해진 주기마다 배포하는 버전. M3 이면 Milestone 3번째 것. Project Metadata Group: 보통 기업 도메인명 Artifact: build되어 나온 결과물(jar, war) ..
포인터
1장. 실용주의 철학 실용주의 프로그래머는 무엇이 다른가? 그들은 직면한 문제 너머를 생각하며, 문제를 항상 더 큰 맥락에 놓으려 노력하고, 항상 더 큰 그림을 보려 한다. 1. 고양이가 내 소스코드를 삼켰어요. 실용주의 철학의 초석 중 하나는 경력 향상, 프로젝트, 일상 업무의 면에서 자신과 자신의 행동에 대해 책임을 지는 것이다. 실용주의 프로그래머는 경력에 대한 책임을 지고, 자신의 무지나 실수를 인정하기를 두려워하지 않는다. 우리는 자신의 능력에 대해 자부심을 가질 수 있지만 실수나 무지 같은 단점에 대해서도 정직해져야 한다. 책임지기 결과에 대한 책임을 받아들인다면, 그 결과에 대해 나중에 해명할 것을 예상해야 한다. 실수나 저지르거나 잘못된 판단을 내렸다면, 정직하게 인정하고 다른 방안을 제안하도록 노력하라. 다른..
서문 이 책의 부제목은 '숙련공에서 마스터로'이다. 이 책은 누가 읽어야 할까? 이 책은 더 효율적이고 생산성 높은 프로그래머가 되고 싶어 하는 사람들을 대상으로 쓰였다. 무엇이 실용주의 프로그래머를 만드는가? 실용주의 프로그래머들은 다음 특징 가운데 많은 수를 공유한다. 얼리어답터 성향/새로운 것에 빨리 적응하는 성향 이런 사람은 기술과 기법에 대한 본능적인 감각이 있으며, 새로운 것을 시도해보는 것을 좋아한다. 이런 사람은 새로운 것이 주어지면 그것을 쉽게 파악해서 자기의 지식에 통합해 넣는다. 캐묻기 좋아한다. 이런 사람은 질문을 많이 한다. 이런 사람은 자잘한 지식들을 머리 속에 쌓아두며, 그 가운데 어떤 것들이 몇 년 후의 결정에 영향을 주기도 한다. 비판적인 사고의 소유자. 이런 살마은 사실 관계를..
Azure 공유 파일(File Shares) Properties 정보 가져오기 Azure 공유 폴더의 파일이 12시간 지나면 삭제하는 스케쥴러를 만들었다. @Slf4j @Component public class TempFileManageScheduler { @Value("${azure.storage.file.connectionString}") private String edifactFileConnectionString; @Value("${azure.storage.file.share}") private String edifactFileShareName; private static final Long TIME_TO_LIVE_HOURS = 6L; private static final String TEMP_DIRECTORY_PATH = "temp/"; @Scheduled(fixedDela..
VirtualBox에서 E_FAIL (0x80004005) 에러 해결 방법 - Fasoo 프로그램 삭제 가상상 머신 실행 시, 아래와 같은 에러가 났다. 해결 찾아보니 보통 아래로 인해 문제가 생긴다. VirtualBox 버전 문제 : VirtualBox 6.1버전이라 버전으로 인한 문제는 아니었다. 확장팩 문제 : 확장팩을 깔면 해결된다고 하는데, VirtualBox의 확장팩을 깔아도 해결이 되지 않았다. 원인은 바로 Fasoo라는 프로그램이었다. FASOO DRM과 가상 머신이 충돌하며 실행이 되지 않았던 것이다. 아래 Fasoo 프로그램을 제어판에서 지워주었다. 지워준 후, VM을 다시 기동하니 아래와 같이 잘 작동하였다. 참고 https://mvp0115.tistory.com/23
SOAPUI를 이용한 라이브러리 생성 및 사용 라이브러리 생성 SOAPUI를 설치한다. SOAPUI의 File > New SOAP Project에 들어가서 WSDL URL을 입력한다. WSDL이 Import 되면 Source Code Generate에서 Axis2 Artifacts를 클릭한다. Tools를 클릭해서 Axis2 경로를 설정해준다. Axis2 파일은 필요한 파일 폴더에 넣어두었다. 알집을 풀고 파일 경로를 사진과 같이 잡아주면 된다. 아래 사진과 같이 설정을 하고 Generate를 누른다. Generate를 눌렀을 때 JAVA_HOME이 나오면서 Fail 뜨면 JAVA 환경변수를 설정해줘야 한다. 자바 소스가 생성되면 Eclipse에서 프로젝트 Import 한다. Axis2Client의 Lib를 넣어준다. Build.xml에 오른쪽 클릭..
MSSQL 모니터링 툴 - WhoIsActive 라이브 서버에 DB Lock문제가 생겨서, 어떤 SQL Query가 문제가 되는 지 알기 위해 모니터링툴을 설치하였다. MSSQL을 사용하고 있으므로, MSSQL에서 지원해주는 WhoIsAcitve를 설치하였다. WhoIsAcitve는 SQL SERVER LOCK 세션 모니터링 수행 할 수 있도록 DB에 스케쥴을 증록한다. 스케쥴은 sp_WhoIsActive 프로시져를 수행하며, 사용 테이블은 WhoIsActive(Tools DB에 생성)이다. WhoIsActive 설치 방법 1. Tools DB 생성 Tools 테이블 없을 시, Databases > New databases > Table 명 'Tools'로 OK 누르고 Database 생성. 2. Tools DB에서 아래 쿼리 실행 SET QUOTED..
PID file found but either no matching process was found 에러 CI/CD에서 Tomcat 서버 Kill하는 중에 아래와 같은 에러가 나서 CI/CD가 Fail 됐다. Linux에 들어가서 ps -eaf 명령어를 사용하여 pid를 확인했다. 올라간 tomcat서버의 PID를 찾았다. 알고보니 Tomcat Stop을 위한 shell 스크립트의 톰캣 PID와 실제 떠있는 톰캣 PID가 불일치해서 생긴 문제였다. PID가 6211이었던 것을 17048로 바꿔줬다. 다시 CI/CD를 시도해보니 정상적으로 수행됐다.