본문 바로가기
728x90
반응형

자기계발91

클린코드(Clean code) 1장 - 좋은 코드와 나쁜 코드 https://career-gogimandu.tistory.com/115 Java 힙 공간 에러 발생한 배치 성능개선후기 2022.08.19 개발된지 3년이 넘은 이후로 마지막 수정 2019년 초 나 입사 전 그 뒤 전혀 수정 없이 매달 루틴하게 잘쓰던 자료 추출용 정기작업 배치에서 오류가 발생하였다. [문제점] 에러 로그를 보 career-gogimandu.tistory.com 이 사건과, 최근들어 제도 개정으로 수정, 아니 누더기 기우기를 진행 중인 말도 안되는 배치... 때문에 (거의 10년 전 java이전 시절 구체제 로직이 그대로 묻어있고, 가독성이 떨어져서 검증도 너무 하기 힘듦. 연초 제도개정때도 그 이전에도 저 그냥 이거 갈아엎고 새로 짜고 싶다고 수백번 말했는데 여러 사유로 받아들여지지 .. 2022. 9. 4. 21:16
Java 힙 공간 에러 발생한 배치 성능개선후기 2022.08.19 개발된지 3년이 넘은 이후로 마지막 수정 2019년 초 나 입사 전 그 뒤 전혀 수정 없이 매달 루틴하게 잘쓰던 자료 추출용 정기작업 배치에서 오류가 발생하였다. [문제점] 에러 로그를 보다보니 한가지 특이한 점, statistic에서 눈에 띄게 cpu time이 높은 걸 확인할 수 있었음 10분짜리 (워낙 대용량 자료를 인풋으로 하고있음) 작업이라 치면 8분이상은 cpu를 잡아먹음 그리고 로그에 찍힌 에러 발생한 원인도 java 힙 공간 에러 java.lang.outofmemory 어쩌고 저쩌고 로그가 가리키는 줄은 if (조건 a를 만족) -> b 로 출력한다 같은 단순한 라인이었지만 저 라인만이 문제가 아닐 것이라고 생각하여 코드 전체에 대한 분석을 팀원들과 함께 진행하였음 워낙.. 2022. 8. 22. 18:27
달리기, 몰입의 즐거움 - 미하이 칙센트미하이 : 최고의 퍼포먼스와 몰입에 관한 계속되는 생각들 https://book.naver.com/bookdb/book_detail.nhn?bid=15201384 달리기, 몰입의 즐거움 달리기를 통해 몰입을 경험하다!달리기를 하는 사람들과 그들이 경험하는 몰입 현상에 초점을 맞춰 다양한 사례와 연구 결과를 바탕으로 달리기와 몰입의 메커니즘을 과학적으로 제시하는 『 book.naver.com 저번에 올린 피크 퍼포먼스에 이어 몰입의 즐거움이 집에 있길래 그걸 읽어보려 했으나 좀더 새로운 버전이 나오기도 했고 종이책 들고다니기 번거로워서 밀리에서 이걸 읽음 육상선수들의 달리기를 통해 알아보는 몰입, 뭐 그런거랄까 30일 완독 책방을 읽고 나서 저자와 함께 하는 필사모임 참여 중이고 거의 마무리 단계인데 모임하는 동안 재미있게 읽었다. 그때 적은 구절들과 생각들 몇.. 2022. 8. 13. 21:30
Vue.js CSS 클래스 바인딩 CSS 클래스를 저장해놓고 이를 불러와서 바인드하는 방법들이 다양하게 존재한다 문자열 문자열 문자열 css1 변경 문자열 css true 설정 css false 설정 문자열 1. 쌩짜로 class = 꼴로 불러오기. 여러개 불러올 때는 띄어쓰기로 구분하기 2. data에 안에 css 클래스를 불러올 변수를 지정하고 그 변수로 v-bind:class 여러개 불러올 때는 [css1Name,css2Name]꼴로 대괄호에서 쉼표로 구분하여 가져오자. 3. 메소드 안에 function으로 저장하여 특정 css name 을 지정하거나, 속성을 지정/해제할 수 있다. v-on:click 등을 통해 동적으로 이벤트를 먹일 수 있다. + 정규표현식으로도 지정할 수 있다! css1을 css3으로, css2를 css4로 변.. 2022. 6. 10. 07:34
Vue.js 링크 처리: v-bind / v-on 용도 추가 {{str1}} link1 link2 link3 link4 vue 객체에 링크를 저장하는 경우 v-bind:href = '링크 변수' 꼴로 가져와야 한다. 그리고 v-bind는 생략이 가능하다. :href, :src, :width 같은 속성만 놓치지 않고 사용해도 무방하다. v-on의 경우, 마우스 이벤트를 저장한다. 디렉티브를 사용하여 DOM 이벤트를 듣고 트리거 될 때 JavaScript를 실행할 수 있습니다. 라고 vue.js 한국어 포럼에 친절히 나와있다. mouseenter : 마우스가 해당 개체를 클릭하면 -> 이미지 크기를 변경 mouseleave : 마우스가 해당 개체 밖을 클릭하면 -> 이미지 사이즈 원상 복구 mouseenter 상태로 펭수를 좀더 크고 귀엽게 감상할 수 있게 되었다. 2022. 6. 9. 19:49
Vue.js computed에서 get / set : 변수 받아서 셋팅하기 자바에서 getter setter 지정하듯, 변수를 가져오고, set에서 뭔가 다른 처리를 할 수 있다 computed에서 get 을 통해 data1 과 data2에 기존 저장해둔 변수들을 가져오는 함수를 만들었다. 그러면 data1,data2 꼴로 세번째 인풋칸에서 출력이 가능하다 바로 이런 식으로 그리고 set함수에서 , 을 delimeter로 하여 값을 끊는 배열을 만들었다. list의 0번지에는 첫번째칸 data1을, list의 1번지에는 두번째칸 data2를 저장할 수 있다. 그리고 data1을 바꿔도 data1과 data3이 data2를 바꿔도 data2와 data3이 data3을 바꿔도 바꾼 자리가 쉼표 앞인지 뒤인지에 따라 해당하는 배열 번지수에 맞는 데이터값이 변경될 수 있다 2022. 6. 8. 19:35
Vue.js watch computed : 캐시 메모리저장 여부 / 코드 복잡도 차이 1. Watch input1 : input2 : {{a1}} {{a2}} {{a3}} 값이 바뀔 때마다 콘솔에 실시간으로 변경이 인식되는 것이 watch의 특징이다. 그리고 a3이라는 변수를 지정해서 그 변경값을 실시간으로 찍을 수 있도록 했다. 2. Computed a1 : {{a1}} a2 : {{a2}} a1+a2 : {{a1 + a2}} test method : {{test_method()}} test method : {{test_method()}} test method : {{test_method()}} test computed : {{test_computed}} test computed : {{test_computed}} test computed : {{test_computed}} 값 변경 g.. 2022. 6. 7. 19:25
Vue.js 컴포넌트 component, v-bind:is 동적할당, 템플릿만들기 Vue.component를 활용하면 해당 컴포넌트 이름을 태그처럼 불러다 쓸 수 있다. component 밑으로 템플릿을 만들어 data를 지정하고, method를 지정할 수 있으며 이를 함수 형태로 콜할 수도 있음. 데이터를 지정하는 경우에도 함수의 형태로 return시켜야 한다는 점에 유의하자. 타 객체 안에 지정된 컴포넌트는 다른 객체가 불러다 쓸 수 없지만, 범위를 지정하지 않은 경우 다른 객체들이 한 컴포넌트를 동시에 갖다 써도 무방하다. 그리고 객체 하나가 컴포넌트를 여러개 불러쓰는것도 당연히 문제되지 않음. 객체 안에서 components 를 직접 지정하여 호출할 수도 있음 : var test3 부분. v-bind:is 를 사용하면, 동적으로 컴포넌트를 조건에 맞게 호출할 수도 있음. 결과물 2022. 6. 6. 10:44
Vue.js HTML태그 인식하기 / 이미지 불러오기 : v-html, v-bind {{a1}} {{a2}} {{a3}} vue객체에 데이터를 집어넣으면서, HTML 을 넣을 수 있다! 그러나.... 그냥 문자열처럼 똑같이 집어넣으면 리터럴리 문자열로 인식을 해버림. 그래서 v-html 을 넣고, data의 해당 번지를 지정하여 html 태그를 태그로 인식할 수 있도록 처리해줘야 한다. 이미지도 마찬가지로, 그냥 src에 넣어버리면 그냥 이미지 자리만 생기고, 아무 일도 벌어지지 않는다. 그래서 v-bind 를 사용하고, v-bind 뒤에 src , width, height 설정을 붙여야 한다. 이미지 경로는 일반 문자열처럼 똑같이 경로 지정해서 가져올 수 있음. 소스 까보면 똑같이 html에다 직접 넣은 것 처럼 보인다. 2022. 6. 5. 10:18
728x90
반응형