일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 |
27 | 28 | 29 | 30 |
- java
- 시큐리티
- MYSQL
- 패스트캠퍼스
- docker
- 데이터베이스
- 스웨거
- @jsonproperty
- 개인프로젝트
- AWS
- 스파르타코딩클럽
- 남궁성과 끝까지 간다
- emqx
- Spring
- visualvm
- 프로그래머스
- 쇼트유알엘
- 생성자 주입
- Spring Security
- 항해99
- CentOS
- 스프링의 정석
- Kafka
- JWT
- EC2
- WEB SOCKET
- 웹개발
- JavaScript
- 카프카
- DB
- Today
- Total
목록분류 전체보기 (337)
Nellie's Blog
2일하고 2시간걸려서 젠킨스를 구축완료했다. 포스팅은 아직 못했다. 권한 문제때문에 반나절을 고생했다.. 회사 선배가 리눅스를 아주 잘다뤄서 많이 물어봤다. 배운점 1. root로 리눅스 작업하지말자. 나중에 꼬인다. 사용자에서 접근 못해서... 2. 뭐가 안되면 대부분 권한 문제다. 권한 명령어를 잘 알아놓자.

어제부터 젠킨스 구축을 하라는 임무를 받고 오늘도 하루종일 젠킨스를 만졌다. 어제 오후 3시부터 시작했는데 2시간동안 거의 다 마무리가 되어서 좀 쉽게 생각했는데... 이런 생각을 하면 안된다는 듯이 오늘 에러가 팡팡 터졌다...ㅎ 1. 처음으로는 서비스 실패오류 자바 8에서 11로 업그레이드 해서 해결 2. 젠킨스 credential 오류 젠킨스에 ssh를 등록하니 자꾸 오류가 났다. 깃랩에서 시크릿키를 발급받고 credential을 등록하니 에러가 안남. 드디어 젠킨스에서 빌드 성공. 3. 그런데 기본 프로젝트를 생성해서.. 메이븐 프로젝트로 다시 깔라고 해서 깔았는데.. 이번엔 젠킨스에서 자꾸 빌드가 안됨. ㅠㅠ 아래 4번의 시도 끝에 성공.. 휴ㅜㅜ 어렵다...ㅋ 쉬운 게 아니었다 역시 내일은 젠..

신규 프로젝트에 젠킨스를 구축해보라는 팀장님의 명이 있어서 서버에 접속을 시도했다. git bash로만 리눅스 서버를 다루다가 회사 선임님께서 좋은 툴을 알려주셨다. MobaXterm 이라는 툴인데 더 편하다고 한다. 아래 사이트에서 무료다운로드 하면 된다. https://www.softonic.kr/download/moba/windows/post-download Download MobaXterm 23.1 - free - latest version STG Cache Audit Internet Explorer 캐시에서 사이트, URL, 쿠키 및 방문 기록 목록을 쉽게 볼 수 있습니다. www.softonic.kr 다운로드가 다 되면 창을 열고, 왼쪽 상단 Session 클릭 Bookmark settings..

WITH RECURSIVE cte_count AS ( -- Non-Recursive 문장( 첫번째 루프에서만 실행됨 ) SELECT 1 AS n UNION ALL -- Recursive 문장(읽어 올 때마다 행의 위치가 기억되어 다음번 읽어 올 때 다음 행으로 이동함) SELECT n + 1 AS num FROM cte_count WHERE n < 3 ) SELECT * FROM test; 메모리 상에 가상의 테이블을 저장한다. 반드시 UNION 사용해야한다. 반드시 비반복문(Non-Recursive)도 최소한 1개 요구된다. 처음 한번만 실행 SubQuery에서 바깥의 가상의 테이블을 참조하는 문장(반복문)이 반드시 필요하다. 반복되는 문장은 반드시 정지조건(Termination condition)이 ..

남궁성 저자의 자바의 정석을 보고 작성했다. 매번 찾아보는 것 보다 한 번 정리하고 두고 두고 보려고 만들어 보았다. 스트림의 중간연산 스트림의 최종연산

9. 갑상선장애 9-1. 갑상선 기능 저하증 1. 정의 갑상선에서 갑상선 호르몬이 잘 생성되지 않아 체내에 갑상선 호르몬 농도가 저하된 또는 결핍된 상태 2. 진단 채혈 검사를 통해 혈액 내 갑상선 호르몬 농도를 측정하여 진단할 수 있다. 갑상선 기능 저하증의 경우 갑상선 호르몬(T4 또는 T3)의 농도가 정상보다 낮게 측정된다. 3. 증상 갑상선 호르몬의 부족으로 에너지 대사가 떨어지므로 심장 박동수(맥박)나 체온 조절 등의 필수 기능도 떨어지며 그 외 대사 저하와 관련된 여러 가지 증상이 발생할 수 있다. 쉽게 피로하며 의욕이 없다. 기억력이 감퇴하고 집중력도 떨어진다. 몸이 붓고 식욕은 없는데도 체중이 증가한다. 추위를 잘 타고 땀이 잘 나지 않으며 피부는 건조하다. 목소리가 쉬고 말이 느려진다. ..

7. 대뇌혈관질환 대표적인 대뇌혈관질환 : 허혈성 뇌졸중(뇌경색), 출혈성 뇌졸중(뇌출혈) 7-1. 허혈성 뇌졸중(뇌경색) 1. 정의 뇌조직은 평상시에도 많은 양의 혈류를 공급받고 있다. 그런데 다양한 원인으로 인하여 뇌혈관에 폐색이 발생하여 뇌에 공급되는 혈액량이 감소하면 뇌조직이 기능을 제대로 하지 못하게 된다. 뇌혈류 감소가 일정 시간 이상 지속되면 뇌조직의 괴사가 시작된다. 뇌조직이 괴사되어 회복 불가능한 상태에 이르렀을 때 이를 뇌경색이라고 한다. 2. 진단 뇌 컴퓨터단층촬영(뇌 CT)이나 뇌 자기공명영상촬영(뇌 MRI) 등의 영상 검사를 통해 출혈성 뇌졸중과 감별하고, 뇌졸중의 위치, 크기 및 폐색된 혈관의 위치를 파악하여 확진한다. 3. 증상 갑작스럽게 발생하는 편측마비, 안면마비, 감각이상..

4. 악성신생물(암) 1. 정의 정상적으로 세포는 세포내 조절기능에 의해 분열하며 성장하고 죽어 없어지기도 하며 세포수의 균형을 유지한다. 그러나 여러가지 이유로 인해 세포의 유전자에 변화가 일어나면 비정상적으로 세포가 변하여 불완전하게 성숙하고, 과다하게 증식하게 되는데 이를 암(cancer)이라 정의할 수 있다. 2. 진단 의사의 진찰, 조직검사(생검), 세포검사, 내시경검사, 종양표지자검사, 영상진단검사, 핵의학검사 등으로 진단한다. 하나의 검사로 암이 확진되고 병기를 결정할 수 있는 방법은 아직까지 없기 때문에 암의 진단은 여러 검사를 복합적으로 실시하여 의사의 종합적 판단으로 결정된다. 생검 암은 바늘 생검 또는 수술을 통해서 종양 조각을 채취하고 의심 부위의 검체를 채취하는 것을 생검이라고 한..

만성질환(chronic disease) 정리 0. 목차 1. 만성질환 정의 및 분류 2. 만성질환 종류별 개요 1. 고혈압 2. 당뇨병 3. 만성폐쇄성폐질환(COPD) 4. 악성신생물(암) 5. 호흡기결핵 6. 심장질환 - 심부전증, 협심증, 심근경색증, 부정맥질환 7. 대뇌혈관질환 - 허혈성 뇌졸중(뇌경색), 출혈성 뇌졸중(뇌출혈) 8. 신경계질환 - 뇌전증, 치매, 파킨슨병 9. 갑상선장애 - 갑상선 기능 저하증, 갑상선 기능 항진증 10. 간질환 - 만성간염(B형, C형), 간경변증 11. 만성신부전 12. 정신 및 행동장애 - 우울증, 불안장애, 수면장애 1. 만성질환(chronic disease) 정의 및 분류 세계보건기구(WHO) 세계보건기구에서는 만성질환을 감염성 질환에 대비되는 개념으로 비..

0. 목차 1. 만성질환 정의 및 분류 2. 만성질환 종류별 개요 1. 고혈압 2. 당뇨병 3. 만성폐쇄성폐질환(COPD) 4. 악성신생물(암) 5. 호흡기결핵 6. 심장질환 - 심부전증, 협심증, 심근경색증, 부정맥질환 7. 대뇌혈관질환 - 허혈성 뇌졸중(뇌경색), 출혈성 뇌졸중(뇌출혈) 8. 신경계질환 - 뇌전증, 치매, 파킨슨병 9. 갑상선장애 - 갑상선 기능 저하증, 갑상선 기능 항진증 10. 간질환 - 만성간염(B형, C형), 간경변증 11. 만성신부전 12. 정신 및 행동장애 - 우울증, 불안장애, 수면장애 1. 만성질환(chronic disease) 정의 및 분류 세계보건기구(WHO) 세계보건기구에서는 만성질환을 감염성 질환에 대비되는 개념으로 비감염성질환(noncommunicable dis..

1. 의료폐기물이란? 같은 법 시행규칙 [별표3]에 해당하는 보건‧의료기관, 동물병원, 시험‧검사기관 등에서 배출되는 폐기물 중 인체에 감염 등 위해를 줄 우려가 있는 폐기물과 인체 조직 등 적출물, 실험 동물의 사체 등 보건‧환경보호상 특별한 관리가 필요하다고 인정되는 폐기물 2. 의료기관 등 배출자 의료폐기물을 처리하려는 자는「폐기물관리법」제17조제5항에 따라 폐기물처리계획서를 확인받아야하며, 확인필증은 배출자가 보관하여야 함 -「의료법」제3조제2항제3호마목의 종합병원은 관할 유역‧지방환경청에 제출, 그 밖의 기관은 관할 지자체에 제출 - 폐업, 업종변경 등으로 더 이상 의료폐기물을 배출하지 않게 되는 경우에는 폐기물처리계획서 확인필증을 승인기관에 반납하여야 함 아울러, 같은 법 제17조제6항에 따라..
https://yeees.tistory.com/379 @RequestBody 호출 시 일어나는 일을 간단히 알아보기 (feat. MessageConverter, ObjectMapper) Http 요청 시 항상 보게되는 @RequestBody 어노테이션이 있다. @ModelAttribute 어노테이션과 항상 비교되는 어노테이션이다. 오늘은 @RequestBody만 딥하게 파보도록 하겠다. 지금까지는 @RequestBody를 '스프링 yeees.tistory.com 할 일이 없어서 하루종일 공부를 하며 포스팅을 했다. ㅎㅎ 꿀~~

Http 요청 시 항상 보게되는 @RequestBody 어노테이션이 있다. @ModelAttribute 어노테이션과 항상 비교되는 어노테이션이다. 오늘은 @RequestBody만 딥하게 파보도록 하겠다. 지금까지는 @RequestBody를 '스프링 내부의 리플렉션으로 매핑을 해주며 JSON으로 요청이 가능하고 자바객체로 역직렬화를 해준다' 라고만 알고있었다. 더 들어가보자. @RequestBody 애너테이션의 역할은 클라이언트가 보내는 HTTP 요청 본문(JSON 및 XML 등)을 Java 오브젝트로 변환하는 것이다. HTTP 요청 본문 데이터는 Spring에서 제공하는 HttpMessageConverter를 통해 타입에 맞는 객체로 변환된다. 1. HttpMessageConverter 이동 @Reque..

1. 입원 안내 사항 1) 입원시 준비 물품 비누, 치약, 칫솔, 수건, 미끄럽지 않은 실내화, 화장지, 물컵/물통, 보호자 침구류 등 입원 전 복용하던 약이 있는 경우에는 약과 약물정보지(약 처방전 또는 약 이름이 써있는 약봉투)를 가지고 오십시오. 필요하신 물품은 병원 내 1층 편의점에서 구입하실 수 있습니다. 보호자용 침구류는 제공하지 않으므로 개인적으로 준비해주시기 바랍니다. 입원 전 복용하던 약이 있는 경우에는 약과 약물정보지(약처방전 또는 약 이름이 써있는 약봉투)를 간호사에게 전달해 주시기 바랍니다. 사용 제한 : 가습기 (감염예방) / 커피포트, 전기장판, 찜질팩 (화재 및 화상예방) 2) 의사 회진 시간 입원 시 담당 의사는 정해진 시간 내 하루에 1회 정도 병실을 방문하며, 회진 시간에..
https://yeees.tistory.com/376 [Vue] Visual Studio Code에서 Vue3 설치 (NodeJS) 1. nodeJS 설치 https://nodejs.org/en/download Download | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 2. vue 개발환경 다운로드 npm install -g @vue/cli 를 입력하여 vue 개발환경을 빠르게 yeees.tistory.com 오후 5시까지 회진관리 백엔드 소스 리팩토링을 했다. 쿼리랑 주석 등 을 수정했다. 오후 6시까지는 Visual Studio Code에서 Vue3 을 설치해보았다.

1. nodeJS 설치 https://nodejs.org/en/download Download | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 2. vue 개발환경 다운로드 npm install -g @vue/cli 를 입력하여 vue 개발환경을 빠르게 다운로드 받는다. 3. 확장자 설치 1. Vetur 2. HTML CSS Support 3. Vue 3 Snippets 4. vue 프로젝트 생성 vue create [프로젝트명] https://haenny.tistory.com/247 [VueJS] VSCode 에서 VueJS 시작하기 - ① 설치 및 세팅 방법 [VueJS] VSCod..
https://yeees.tistory.com/374 [회진 관리] 업무 정리 ERD Ⅰ. round_rule 테이블 - round_rule_detail 테이블 관계 '정기 회진 관리' 좌측 페이지에는 정기 회진이 등록되어 있는 의사 목록이 조회된다. 의사 목록 중 한 의사를 클릭하면, 우측 페이지에 해당 yeees.tistory.com https://yeees.tistory.com/373 Vue3 샘플 페이지 만들기 샘플 1 {{name}} 이름 {{job}} 샘플 2 Hello, Vue.js Hi {{main_content2}} {{today_weather}} 오늘의 날씨보기 오늘의 운세 {{today_lucky}} {{book.title}} {{book.author}} yeees.tistory.co..
샘플 1 {{name}} 이름 {{job}} 샘플 2 Hello, Vue.js Hi {{main_content2}} {{today_weather}} 오늘의 날씨보기 오늘의 운세 {{today_lucky}} {{book.title}} {{book.author}}
https://yeees.tistory.com/369 MariaDB / DBeaver 에서 컬럼 Auto increment 설정하기 1. 인덱스 생성 Indexes 탭 - 우클릭 - 인덱스 생성 - 원하는 컬럼 선택, Unique 선택하고 확인! 2. 원하는 컬럼의 Auto Increment에 V 체크!! yeees.tistory.com 디비 다룰 때 자동 생성 인덱스를 초기화하는 방법을 배웠다. 지금까지 회진관리업무를 맡아서 백엔드개발을 했는데, 오늘 최종리뷰를 받았고, 예외처리, 비슷한 메소드 모듈화하기 정도의 리뷰만 받고 나머지는 다 통과했다!! 내일부터는 vue로 프론트 개발을 시작한다!! 매일매일이 배움과 설렘과 당황의 연속이다.

스케줄러를 적용했더니,, row가 너무 많아져서 테스트하기 불편했다. 다시 깔끔하게 몇 row 만 남기고 테스트 하려고 했는데, 자동으로 증가하는 index값이 초기화가 되지 않았다. 구글링 한 결과 , 아래와 같이 쿼리를 작성해주면 된다! ALTER TABLE hospital.round_schedule AUTO_INCREMENT = 862; 이렇게 해주면 자동으로 지정한 숫자부터 인덱스가 생성된다!

테스트 케이스로 체크하면서 기능 하나하나 실행해보니 안되는게 많았다. 기획도 조금 바꾸고, 예외적인 부분도 많아서 은근히 손이 많이 갔다. ㅠㅠ 오늘은 디비버 다루는 방법, 스케줄러 생성하는 것을 배웠다. 스케줄러로 10분마다 DB 를 긁어와서 알람을 보내주는 로직을 작성했다. 오늘 커밋 기록! 진행한 테스트 케이스! https://yeees.tistory.com/369 MariaDB / DBeaver 에서 컬럼 Auto increment 설정하기 1. 인덱스 생성 Indexes 탭 - 우클릭 - 인덱스 생성 - 원하는 컬럼 선택, Unique 선택하고 확인! 2. 원하는 컬럼의 Auto Increment에 V 체크!! yeees.tistory.com

1. 인덱스 생성 Indexes 탭 - 우클릭 - 인덱스 생성 - 원하는 컬럼 선택, Unique 선택하고 확인! 2. 원하는 컬럼의 Auto Increment에 V 체크!!

오늘은 하루종일 테스트케이스를 작성하고 , 테스트를 했다. 스프링 스케줄러도 적용을 했는데, Cron방식은 처음 써봤다. 잘 알아둬야겠다. https://yeees.tistory.com/367 [회진 관리] 정기 회진 규칙 스프링 스케줄러 적용 정기 회진 규칙을 일요일 자정마다 스케줄러로 7일치를 읽어와서 회진 스케줄 목록에 인서트 하는 로직을 만들었다. 1. SpringBootApplication 클래스에 @EnableScheduling 추가 @SpringBootApplication @EnableScheduli yeees.tistory.com 그리고 날짜 컨트롤 하는 부분도 헷갈렸다. 얼른 테스트케이스 끝내고 백엔드 마무리 지으면 쿼리, 날짜시간컨트롤, 포맷 등등 미뤄놨던 공부를 하도록 해야겠다.

지난주 금,토 워크샵으로 개발을 못했다. 금일업무 내용은 주황색으로 칠한 셀 부분이다. 한방 쿼리를 써야하는데, FOR문 안에 DAO를 박아버렸다.. 혼났다.ㅠㅠ 내가 생각해도 이건 좀 아닌 것 같다. 서브쿼리로 여러줄을 INSERT하는 방법도 몰랐었다. 한방 쿼리를 쓰자!! 개발자 답게!! https://yeees.tistory.com/364 [회진 관리][트러블슈팅] 서브쿼리로 여러 줄을 INSERT 하기 알람 발송시 수신인 테이블에 INSERT 를 시도, 오류 해결 1. 잘못된 쿼리 INSERT INTO recipient ( patient_id, alarm_record_idx ) VALUES ( (SELECT patient_id FROM round_patient WHERE round_schedule..

어제 코드리뷰 받은 내용 중에 절반 정도 수행했다. 오늘은 좀 멍한 상태였다 ㅜㅜ 쿼리가 익숙하지 않아서 힘들었다. 내가 짠 쿼리도 가물가물했다 ㅠㅠ 내일은 피드백 받은거 모두 수정해야겠다!!! 오늘은 좀 멍한 상태였다 ㅜㅜ 쿼리가 익숙하지 않아서 힘들었다. 내가 짠 쿼리도 가물가물했다 ㅠㅠ 내일은 피드백 받은거 모두 수정해야겠다!!!

내가 맡은 파트 백엔드부분이 거의 완료가 되어, 오늘 점심먹고 최종 코드리뷰를 하자고 하셨다. 팀장님께서 간단히 코드를 봐주신 적은 있었지만 팀원 4명이 다 같이 리뷰어로 들어온 코드리뷰는 처음이었다. 깃랩에 올린 소스를 팀장님과 선배님 두 분이서 클론 받고 실행시켜 보셨다. 조용한 분위기여서.. 떨렸다... ㅜㅜ 한시간 정도 리뷰를 해주셨는데, 대부분 코딩할 때의 규칙들과 이렇게 하면 더 편하다 등의 노하우를 대부분 알려주셨다. SELECT 쿼리를 API별로 각각 만드는 것이 아니라, 한번에 SELECT하고 WHERE절로 조건문을 달아서 재활용이 가능하도록 작성할 것, 메소드명은 get/mod/reg/del 로 시작하도록 통일할 것, del_yn 컬럼은 정말 중요하니 INSERT 할 때 빼먹지 않고 모..

오늘 회사에서는 회사에서 사준 PC 세팅을 하느라 하루를 다 보냈다. 퇴근 후 카페에서 작업을 하려고 하는데 SQLNonTransientConnectionException 에러가 떴다. 아래와 같이 디비 자체에서 연결도 되지 않았다. 검색을 해보니 방화벽 문제라고 해서 내 PC의 방화벽을 다 사용안함 처리를 했다. 그런데 더 알아보니, 회사 DB 에서 외부 IP로의 접근을 방화벽을 걸어 막아버린 것이었다. 그랬구나.. 이런 것도 모르고 ㅜㅜ 바보같은 짓을 한시간이나 했다 ㅜㅜ 내일 점심 때는 코드리뷰가 있어서 내일 아침 일찍가서 코딩을 해야겠다. 떨린다 ㅠ-ㅠ
오늘은 Vue 문법을 공부했다. 자바스크립트보다 직관적이었고, SSR(Server Side Rendering)보다 더 편했다. JSP나 Thymeleaf는 서버 단에서 화면을 조작해야하는데 뭔가 버겁다는 생각이 들었다. 그런데 이렇게 Vue를 배워서 CSR로 처리하면 더 깔끔하게 화면을 조작할 수 있을 것 같다. Vue는 조금 더 배워서 정리 포스팅을 올리도록 해야겠다. 그리고 어제 공부한 생성자 주입, 스프링 빈 라이프사이클에 이어서 @Retention 어노테이션도 공부를 해봤다. RetentionPolicy에 따라서 자바 구동시 살아있는 구간이 나뉘어져 있었다. 아래 세 구간으로 나뉜다. SOURCE vs CLASS vs RUNTIME 이렇게 3가지가 있다. RetentionPolicy.SOURCE ..
스프링부트로 개발을 하면서 스프링 빈 라이프 사이클도 제대로 모르고 있었다. 생성자 주입에서 시작된 이 궁금증을 이 참에 해결해 보기로 했다..ㅠㅠ 일은 안하고 하루종일 공부만 했다. 하핫 .. 기본인데 제대로 몰랐다니 부끄럽기도 하다. 제대로 숙지해서 기본은 잘 아는 개발자가 되어야겠다!! 아래는 정리한 포스팅 링크! https://yeees.tistory.com/356 [Spring] 스프링을 구동하면 일어나는 일 / 생성자 주입을 사용해야 하는 이유 (스프링 빈 라이프사 스프링을 구동 (run) 하면 일어나는 일들을 알아보며 생성자 주입과 필드 주입의 차이를 알아보자. 스프링을 구동하면 스프링은 스프링 빈 라이프사이클을 거치며, 7단계의 순서로 진행이 된다. yeees.tistory.com

스프링을 구동 (run) 하면 일어나는 일들을 알아보며 생성자 주입과 필드 주입의 차이를 알아보자. 스프링을 구동하면 스프링은 스프링 빈 라이프사이클을 거치며, 7단계의 순서로 진행이 된다. 스프링 컨테이너 생성 → 빈 생성 → 의존성 주입 → 초기화 콜백 메서드 호출 → 사용 → 소멸 전 콜백 메서드 호출 → 스프링 종료 자세히 알아보자. 1. 스프링 컨테이너 생성 스프링을 구동하면 , 먼저 스프링 컨테이너가 생성이 된다. 컴포넌트스캔이나 @Bean 으로 등록된 클래스 등 빈으로 설정한 아이들을 스프링 컨테이너 생성과 함께 모두 빈으로 등록한다. 2. 빈 생성 스프링 컨테이너는 등록된 빈의 클래스를 기반으로 실제 빈 객체를 생성한다. 스프링을 실행(run) 하자마자 빈 등록과 빈 생성이 바로 이루어진다..