일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 유클리드호제법
- toLowerCase()
- sql 데이터형 변환
- 스프링뼈대
- 자바 최소공배수
- stringbuilder의 reverse()
- cicd
- 프로그래머스 레벨1
- while과 two-pointer
- 모던자바
- 베주계수
- ineer join
- 스프링환경설정
- 동일성과 동등성
- Git사용법
- Github Actions
- islowercase()
- git 컨벤션
- isuppercase()
- addDoc
- 자바 스트링
- GithubActions
- 래퍼타입
- 최소공배수
- 자바 유클리드
- 스프링
- string
- string과 stringbuilder
- StringBuilder
- 최대공약수
- Today
- Total
목록분류 전체보기 (106)
주노 님의 블로그

print: 콘솔 출력문print문을 사용하면 기본적으로 출력후 줄이 바뀝니다줄바꿈을 원하지 않는다면 end를 사용합니다. 또한 콤마를 쓸 경우 빈 공백이 추가됩니다변수명은 다음과 같이 사용합니다print(형식 문자열 %변수)#출력은 아래와 같이 자동으로 줄바꿈이 된다print ("I Love You")#줄바꿈을 원치 않을 경우 end=' '를 사용한다print("I", end=' ')print("Love", end = ' ')print("You")#콤마를 쓸 경우 빈 공백이 추가된다,print("I" "2" "You")print("I", 2, "You")print("I" + str(2) + "You")#출력값은 그 값이나 변수명을 사용name = "juno"print("Hello, %s!" %name)..

아래 내용은 객체지향의 사실과 오해 (조영호 저) 에서 나온 내용을 정리하고, 제 지능에 맞게 다듬어진 글입니다.세줄요약1. 개념은 객체를 분류하고 이해하기 위한 틀로, 이름(심볼), 정의(내연), 그리고 구성원(외연)을 통해 표현된다.2. 객체지향 설계에서는 객체의 행동과 책임을 기준으로 타입(또는 개념)을 결정하며, 이를 통해 일반화/특수화 관계가 형성된다.3. 클래스는 정적 모델로 객체의 타입을 구현하는 도구이고, 실행 중 변화하는 객체의 상태와 행동은 동적 모델로 관리된다. 지하철 노선도의 역사초창기 지하철 노선도는 위치와 거리를 실제 지형과 비례하도록 그려졌답니다.이 방식은 지리적 정확성을 강조했지만, 복잡해지는 지하철 노선에서는 비효율적이고 혼란스러워지는 문제가 있었습니다. 해리 벡은 기존의 ..

아래 내용은 객체지향의 사실과 오해 (조영호 저) 에서 나온 내용을 정리하고, 제 지능에 맞게 다듬어진 글입니다.객체지향과 인지능력 사람들이 객체지향을 직관적이고 이해하기 쉬운 패러다임이라고 말하는 이유는,객체지향이 세상을 자율적이고 독립적인 객체들로 분해할 수 있는 인간의 기본적인 인지 능력에 기반을 두고 있기 때문입니다. 예를 들면 [그림1]을 보고 사람들은 이걸 고앵이라는 객체로 인식이 가능하다는것입니다(사자나 호랑이아님)다른 주변 요소들 (예: 티슈, 물티슈)도 별개의 객체로 인식할 수 있습니다.알게 모르게 우리는 위 내용에서 추상화도 같이 생각하고 있습니다. 물티슈와 고앵이를 싸잡아서 "저건 고양이다.." 라고 말하는사람은 없죠? 인간은 좀 더 단순한 객체들로 주변을 분해함으로써 자신이 몸담고..

아래 내용은 객체지향의 사실과 오해 (조영호 저) 에서 나온 내용을 정리하고, 제 지능에 맞게 다듬어진 글입니다. 서론객체지향이란 무엇인가요? 라는 질문을 받을 때, 나는 항상 버릇처럼"객체지향이란 실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임입니다"라고 답하곤 했다. 이 답변이 틀린 것은 아니지만, 실제로 내가 객체지향의 본질을 제대로 이해하고 있었는지 의문이 들 때가 많았다. 개발을 진행하다 보면 실제 세계와 객체가 1:1로 매핑되는 경우를 찾기가 쉽지 않다. 그러나 객체지향을 설명할 때 실세계의 예시를 드는 이유는 이 패러다임의 다양한 측면을 이해하고 학습하는 데 매우 효과적이기 때문이라고 설명하고 있다. 객체를 현실에 비유하는것은 캡슐화와 자율성을 설명하는데 효과적이며,메세지를 주고받으..
보호되어 있는 글입니다.

CI란 코드 배포 전에 변경 사항이 자동으로 빌드되고 테스트되어 저장소에 통합되는 과정.이를 통해 빌드 결과와 테스트 결과를 즉시 확인할 수 있음.CD란 CI에서 생성된 안정적인 코드를 서버에 자동으로 배포하는 로직.이 과정을 통해 코드는 빠르고 안정적으로 스테이징이나 프로덕션 환경에 반영됨. 프로젝트에서 CI/CD를 구축하면서 질문을 받았었다CI/CD를 하면서 왜 효율성이 올라갔는지? 였다 일단 CI/CD를 하면서 하기전과 후를 비교해보자 CI CD란 지속적 통합(CI)개발자들이 작성한 코드를 커밋하면, 각 커밋마다 자동으로 빌드와 테스트가 실행되는 프로세스이다. 문제가 발생하면 즉시 확인할 수 있도록 자동화된 테스트와 빌드 과정을 제공한다.지속적 제공(CD)CI 과정을 확장하여 안정적인 코드 변경..

두괄식 요약블루 그린 방식에서 서비스가 배포 되기전 health check를 할 수 있는 api를 만들어서간단한 헬스체크를 하게 만들어 ELB에 정상적으로 작동하게 한다. 현재의 코드 구조는 다음과 같다.CODE DEPLY에서 ELB에게 명령을 내려 블루 그린 배포를 진행한다 하지만 그때 생긴 문제는 CODE DEPLOY가 ELB에 명령을 내려야 하는데HEALTH CHECK가 되지않아 오류가 발생한 것이다. 따라서 시작 템플릿을 생성할때 사전 정의를 내릴수있는 방법인사용자 데이터를 사용하게 했다 간단한 HELTHCHECK PYTHON파일을 만든다음겟 요청을 받게 만드는 방법 이있다. 또한STOP_HEALTH_CHECK.SH에서fuser -k 8080/tcp || truepkill -f health_c..

요약이메일 인증을 동기 > 비동기로 전환하며4.69s > 100ms로 97.87% 개선했다. 바꾸기전 속도는 4.69s였다 public HashMap sendMailAndStoreCode(String mail) { HashMap responseMap = new HashMap(); //유저의 이메일 체크 로직. User user = userService.findUserEmail(mail); //소셜로그인일시, 비밀번호 변경을위한 이메일인증 불가. if (user.isSocialLogin()) { throw new ApplicationException(SOCIAL_LOGIN_UPDATE_NOT_ALLOWED); } try { int numbe..

두괄식 요약스케쥴러를 사용한 정산 로직을스프링 배치를 활용하여 안정성과 속도를 개선하였습니다.8만개 기준 38m 4s 에서jpa item reader를 사용하였을때 1m 11초까지 개선하였습니다. 내용기존 정산로직으 스케쥴러를 사용하고 있었습니다 @Service@RequiredArgsConstructorpublic class CalculationService { private static final long ONE_MONTH = 1L; private static final String MONTHLY_AT_3_AM_ON_1ST = "0 0 3 1 * ?"; private final CalculationRepository calculationRepository; private fina..

로그 기록을 모니터링 하던중어느날 평소보다 많은 트래픽이 접속이 된 것을 확인 했다 그라파나로 확인한 결과 눈에 띄는 부하점은 없었으며 EC2에서는 특정 지점 (부하가 발생한 19:30분 ~ )네트워크와 CPU사용률이 높아진것을 볼 수 있다. phpinfo.php 파일에 대한 지속적인 접근으로, 서버의 설정사항을 탈취해가려는 악의적인 접근으로 의심된다.jwt filter에서 걸렀기때문에 접근이 불가능했던것으로 판단된다.문제사항은 로드밸런서의 보안규칙을 모든 포트로 열어놔서 생긴 문제였고.현재는 80포트로 바꾸어 불특정한 포트의 입력을 받지않게하였다.보안의 중요성과 security jwt 관련 코드를 검토하기로 결정했다. jwt 토큰과 security에는 허용된 엔드포인트만 적용되었다env등..