일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pair programming
- ATDD
- 부모객체
- RESAPI
- 완벽이해
- DB
- KPT
- Runtime Area
- 도커
- GC
- M:N
- Self Descript Message
- 스프링으로하는마이크로서비스구축
- testdrivendevelopment
- 클린코드
- docker
- TDD
- Spring/JAVA 서적
- java
- Java 22
- hateoas
- 트랜잭션 격리 수준
- Execution Engine
- Be
- 마이크로서비스디자인패턴
- 미니미프로젝트
- Solid
- G1GC
- 자식객체
- ComponentScan
- Today
- Total
목록전체 글 (35)
Programming Summary
1) JVM의 정의 자바는 썬 마이크로시스템즈 사의 제임스 고슬링에 의해 개발되었으며, Write Once Run AnyWhere라는 표어를 기반으로 제작되었다. JVM이란 Java Virtual Machine의 줄임말로, 이러한 자바 바이트코드를 실행할 수 있는 주체이다. 표어와 같이 JVM이 있다면 어떤 컴퓨터든 자바 코드를 실행 시킬 수 있다. 또한 자바 바이트 코드로 작성된 다른 언어도 JVM 위에서 실행이 가능하다.(대표적으로 코틀린이 있다) 간단하게 자바 초기 버전에 대해 살펴보면 JDK 1.0은 소형 가전 제품위에서 동작하도록 만든 코드였다.(심지어 카드에서도 돌아갔다) 근데 JVM의 특성상 무거울 수 밖에 없어 망했다. 그러다 웹에서 자바 코드를 돌릴 수 있게 되면서 다시 살아나게 되었다...
1) What OOP? OOP란 Object-Oriented Programming의 줄임말로 객체 지향 프로그래밍을 의미한다. 대부분의 프로그램을 짜는 이유는 현실 세계의 문제를 해결하기 위해 로직을 만들게 된다. 이를 위해 여러 개의 독립된 단위, 객체들의 상호작용을 통해 프로그램 로직을 구성하여 현실 세계를 모방하였다. 2) Why OOP? 그렇다면 왜 객체 지향 프로그래밍을 해야할까? 한 파일안에 모든 코드를 넣는 것을 가정해보자. 어떤 장점이 있을까? 일단 읽기가 편하다. 다른 사람의 코드를 본 사람들은 알겠지만, 여러 파일로 되어있는 코드는 서로 추상적이게 의존하고 있고 구체적인 로직이 궁금하다면 여러 파일을 거치며 이해해야 하므로 많은 수고가 든다. 그러니 한 파일 내에 있으면 보다 가독성을 ..
1) Git은 버전 관리 툴이다 Git을 한마디로 정의하자면 버전 관리(Version Management) 도구이자 협업 툴이다. 즉, 소스 코드의 변경 사항을 버전으로 관리하여 변경 관리보다 체계적인 관리가 가능하도록 하는 것이다. 조금 더 말하자면 깃은 컴퓨터 파일의 변경 사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템(DVCS : Distributed Vesion Control System)이라 할 수 있겠다. 그렇다면 과거에는 버전 관리를 어떻게 했을까? 2) 과거의 버전 관리 툴 과거에는 버전 관리를 안했기 때문에 슈퍼마리오 같은 게임은 초창기 코드가 존재하지 않는다. 조금 지나서는 CD에 소스코드를 넣고, 버전을 적어 버..
개요 local 환경에서 다음과 같이 Jupyter Notebooke과 연결을 해주었다. > JupyterNoteBook import asyncio import websockets import random def randomVal(): return random.randrange(0, 2) async def main(): event = asyncio.Event() async with websockets.serve(echo, "localhost", 8765): await event.wait() # 이벤트를 대기하도록 설정 async def echo(websocket, path): async for message in websocket: # 처리 my_list = message.split("\n") my_su..
[Silver II] 가장 긴 증가하는 부분 수열 - 11053 문제 링크 성능 요약 메모리: 14472 KB, 시간: 144 ms 분류 다이나믹 프로그래밍 문제 설명 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 1) 내가 시도한 코드 import ..
리팩토링에 대한 이해 리팩토링(Refactoring)이란? 리팩토링(refactoring)은 소프트웨어 공학에서 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 주로 가독성을 높이고 유지보수를 편하게 한다. 버그를 없애거나 새로운 기능을 추가하는 행위는 아니다. 사용자가 보는 외부 화면은 그대로 두면서 내부 논리나 구조를 바꾸고 개선하는 유지보수 행위이다. 이를 토대로 여러명의 사람들과 협업 작업을 하게 될 때, 다른 사람의 코드에 대해 이해성을 높일 수 있도록 도와준다. 리팩토링 필요성 소프트웨어 설계에서 질적 향상을 위해 리팩토링을 한다. 코드 중복을 제거하고 수정 용이성을 향상시키기 위함이다. 소프트웨어 이해도를 향상, 가독성 향상을 위해 한다. 버그를 찾는데 도움이 된다. 프로그램 개발 속..
문제 링크 : https://www.acmicpc.net/problem/9370 9370번: 미확인 도착지 (취익)B100 요원, 요란한 옷차림을 한 서커스 예술가 한 쌍이 한 도시의 거리들을 이동하고 있다. 너의 임무는 그들이 어디로 가고 있는지 알아내는 것이다. 우리가 알아낸 것은 그들이 s지점에서 www.acmicpc.net 성능 요약 메모리: 126336 KB, 시간: 2776 ms 분류 데이크스트라, 그래프 이론 문제 설명 (취익)B100 요원, 요란한 옷차림을 한 서커스 예술가 한 쌍이 한 도시의 거리들을 이동하고 있다. 너의 임무는 그들이 어디로 가고 있는지 알아내는 것이다. 우리가 알아낸 것은 그들이 s지점에서 출발했다는 것, 그리고 목적지 후보들 중 하나가 그들의 목적지라는 것이다. 그들..
문제 링크 : https://softeer.ai/practice/info.do?idx=1&eid=1529&sw_prbl_sbms_sn=203929 Softeer연습문제를 담을 Set을 선택해주세요. 취소 확인softeer.ai 언어별 시간/메모리 언어시간메모리 C 2초 1024MB C++ 2초 1024MB Java 4초 1024MB Python 4초 1024MB Javascript 4초 1024MB 문제 자동차로 출퇴근을 하는 동환이는 지루하지 않게 종종 길을 바꿔 다니곤 한다. 새로운 동네를 발견하는 일은 동환이의 소소한 행복이다. 동환이의 출근길과 퇴근길은 가끔 겹친다. 즉, 출근길에 들른 동네를 퇴근길에 다시 지나곤 하는 것이다. 이에 대해 곰곰이 생각하던 동환이는 이렇게 두 번 들를 수 있는 동네..
프론트엔드와 협력 작업을 위해 내가 만든 서버를 프론트엔드가 접근 가능하도록 해주어야 했다. 내가 생각해낸 해법은 두가지였다. 1) 포트포워딩을 통해 내 컴퓨터로 연결 가능하도록 만들기 2) 클라우드에 서버 올리기 1) 포트포워딩을 통해 내 컴퓨터로 연결하기 sk 공유기를 사용하고 있는 나는 192.168.45.1을 통해 sk 브로드밴드에 접속할 수 있었다. 초기 설정은 id : admin, pw: (Router MAC주소 뒷자리 6자리)_admin이었다. 이를 통해 접속한 후 내부 포트 8080, 외부 포트 8001번은 열어 주어 포트포워딩을 해주었다. 하지만 접속이 되지 않았다. 방화벽의 인바운드 규칙을 변경해주었고, 포트포워딩을 해주었는데도 접속이 되지 않았다. 이유는 IPTV 모뎀 때문이었다. 외..
https://www.acmicpc.net/problem/2023 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 성능 요약 메모리: 15972 KB, 시간: 512 ms 분류 수학, 정수론, 백트래킹, 소수 판정 문제 설명 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수이고, 7도 소수이다. 즉, 왼쪽부터 1자리, 2자리, 3자리, 4자리 수 ..