분류 전체보기 230

Gradle Multi Module 세팅하기

🍏 gradle multi module [10분 테코톡] 루나의 Gradle 자바 빌드 도구 Gradle 메뉴얼 - 멀티모듈 Gradle 멀티 프로젝트 관리 by 향로 멀티모듈 설계이야기 by 권용근 우아한 멀티모듈 by 권용근 인프콘 멀티모듈 프로젝트 구조와 설계 by 네이버 김대성 초기 세팅 java project 생성후 new module 로 추가 생성후 작업 root build.gradle 편집 plugins { id 'java' id 'org.springframework.boot' version '3.0.0' id 'io.spring.dependency-management' version '1.1.0' } repositories { mavenCentral() } bootJar.enabled = ..

자바 2022.12.23

[도서] 왜 일하는가

일본에서 가장 존경받는 3대 경영인 중 한명으로 평가받는 아나모리 가즈오 회장의 철학을 담은 책으로, 우아한 형제들의 김봉진님이 이책을 감명깊게 보고, 배달의 민족 사업을 시작하는 계기가 되었다는 글을 보고 읽게 되었다. 우리가 흔히 밥벌이 수단으로 여기는 '일'에 대해 사람마다 바라보는 가치관은 다르다. 누군가는 출세를 하기 위한 수단이고, 누군가에게는 자기 계발의 수단이고, 누군가에게는 사회에 대한 자신의 헌신이라고 생각될 것이다. 일을 단순히 밥벌이 수단이라고 생각하게 되면, 퇴근시간 이후에 일과 관련된 전화를 받거나, 고민을 하는 것이 굉장한 스트레스로 다가올 것이다. 가능하면 최소화해야할 대상이 될 것이며, 빨리 경제적 자유를 얻어서 일하지 않고 지내고 싶을 것이다. 이 책의 저자도 20대 초반..

책 이야기 2022.09.25

[도서] 이게 무슨 일이야!

우아한형제들에서 생각하는 일과 문화에 대한 이야기를 엮은 책이다. 송파구에서 일을 더 잘하는 11가지 방법에서 소개한 일에 대한 생각 등을 구성원들 인터뷰 형식으로 엮은 책이다. 다음은 책에서 인상적이었던 구절들 라는 책에서 이나모리 가즈오 회장은 "일은 한 사람의 인격을 높이는 훌륭한 도구다"라고 정의했다. 서양 사상에서는 일을 단순히 돈을 벌기 위한 수단이고, 안하면서 사는게 훨씬 좋은 것이라는 느낌을 주지만, 일은 한편으로 생각해보면 계속 자신을 다듬고 수련하는 과정이라 생각할 수 있다. 일을 하면서 자신이 어떤 것에서 성취감을 느끼는지 알게 되고, 그것을 더 잘하기 위해 연마하고 연구하면서 일이 더 재밌어 질수 있다. 다니기 좋은 회사보다는 일하기 좋은 회사를 지향해야 하며, 이를 위해서는 좋은 ..

책 이야기 2022.09.18

spring boot DB테스트, jdbcTemplate

spring boot에서 JdbcTemplate 사용 implementation 'org.springframework.boot:spring-boot-starter-jdbc' 위와 같이 jdbc 를 추가하고, @Configuration에 Bean을 추가하면 된다. private final DataSource dataSource; @Bean public ItemRepository itemRepository() { return new JdbcTemplateItemRepository(dataSource); } 실제 사용은 아래와 같이 public class JdbcTemplateItemRepositoryV1 implements ItemRepository { private final JdbcTemplate tem..

자바/Spring 2022.09.16

정적 컨텐츠(css, js, 이미지) 튜닝

서비스를 올리니 css, js 등의 로딩이 느려서 화면이 로딩시 깨지는 현상이 발생했다. 이를 해결하기 위해 정적 컨텐츠를 AWS의 cloud Front 등의 CDN으로 url을 변경해 보았으나, 현상은 크게 나아지지 않았다. CDN보다 캐쉬 적용이 더 중요한 부분이었음. Cache Control : 스프링부트는 설정파일에 추가만으로 정적 컨텐츠의 cache Control 설정이 가능했다. spring: web: resources: cache: cachecontrol: max-age: 3600 ETag : http응답값에 파일의 해쉬값을 내려보내준다. 클라이언트는 요청시에 If-None-Match로 해쉬값을 다시 보내고, 파일이 변경되지 않았을 경우에는 파일을 다시 보내는 것이 아니라, 304 Not-M..

Front 관련 기술 2022.08.21

EC2 성능 튜닝1

EC2에 직접 설치한 Mysql 의 성능튜닝 이야기 EC2 t2.medium 장비에 Mysql 8.0.30 설치 후 배치 등 여러 쿼리를 실행했더니, 아래와 같이 IO에서 병목이 발생했다. IOPS는 최대값이 100에서 더 올라가지 못하고 있고, 유휴시간은 0에 가깝다. 장비에서 iostat을 해보면 idle이 거의 없는 상황 장비의 CPU도 25%정도 사용률을 보이나, IO에서 병목으로 CPU는 풀로 활용하지 못하는 상황 조치사항 : Mysql장비에 할당된 볼륨을 디폴트 볼륨인 gp2에서 gp3로 변경했다. 변경하게 되면 IOPS가 100에서 3000으로 올라간다. IOPS를 더 올려도 되지만, 3000이면 충분할 듯 하여 우선 gp3로만 변경함 변경후 아래와 같이 IOPS는 읽기, 쓰기 합쳐서 150..

bootstrap 활용하면서 알게된 사항

반응형 디자인(모바일, 태블릿, PC 등 사이즈가 다양한 단말에 맞게 화면 반응) 12분할을 하여 col-sm-4, col-sm-8과 같이 화면을 2분활 할 수 있다. sm으로 지정하면 sm이상 크기 단말에서는 2분활하고, 그 보다 작은 단말에서는 분활하지 않는다. None (auto) 540px 720px 960px 1140px .col- .col-sm- .col-md- .col-lg- .col-xl- 12분할 위와 같이 작성하면, 540px이상에서는 4개로 나뉘고, 그 이하에서는 3개로 나뉜다. flex 개념 flex박스 하위의 요소들(예를들어 div 등)을 flex박스 안에 배치한다. d-flex-row하면 가로로 여러개, d-flex-column하면 세로로 여러개 배치하는 형태. flex의 정렬 ..

Front 관련 기술 2022.08.06

thymeleaf 폼 관련 처리

input박스 구현 : 폼 구현시 th:value를 써도 되고, 수정등 화면에서는 th:filed 활용가능 아래와 같이 form action에 th:object 정의후 th:field 사용하면 id, name, value 등 자동으로 설정해줌 measuringScreenAreaX : 해당 Controller마다 반복적으로 필드값을 model에 넣어야 할 경우 : 아래처럼 @ModelAttribue로 구현하면 regions, itemTypes가 항상 내려간다. 체크박스나 라이오박스 구현시 th:each 등으로 사용 @ModelAttribute("regions") public Map regions() { Map regions = new LinkedHashMap(); regions.put("SEOUL", "서..

Front 관련 기술 2022.07.16

클린코드 17장 - 냄새와 휴리스틱

마틴파울러의 리팩토링 책에서도 언급하는 것처럼, 우리가 소스를 보다보면 리팩토링이 필요한 나쁜 냄새나는 부분들을 찾을 수 있다. 주석 C1. 부적절한 정보 : 변경이력, 작성자, 최종수정일 등은 다른시스템(소스관리, 버그추적, 이슈추적 등)에 저장할 정보이다. 주석은 코드와 설계에 기술적인 설명을 부연하는 수단이다. C2. 쓸모 없는 주석 : 오래되거나 엉뚱하고 잘못된 주석은 더이상 쓸모다 없다. 코드와 무관하게 혼자서 따로 놀며 코드를 그릇된 방향으로 이끈다. C3. 중복된 주석 : 코드에 이미 있는 내용을 구구절절 반복할 필요는 없다. /** * @param sellRequest * @return * @throws ManagedComponentException */ public SellResponse..

반응형