일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- dfs
- 자료구조
- 주니어
- spring boot
- spring
- 스프링부트
- 코딩테스트
- 구현
- 문자열
- IntelliJ
- HashMap
- 스타트업
- 해시맵
- docker
- 배열
- bfs
- Linux
- 구름LEVEL
- 해결
- 이직
- 인텔리제이
- 프로그래머스
- 스프링
- HTTP
- 도커
- 명령어
- Java
- 백엔드
- 스프링 부트
- 개발자
- Today
- Total
목록개발지식 (50)
마이의 개발 블로그
배경 스프링과 FastAPI를 각각 사용하여 서버를 개발 하던 중 두 서버 모두 로그를 파일로 저장하는 기능이 필요했습니다. 두 프레임워크 모두 로깅은 기본적으로 제공하고 있었는데 스프링에서는 간단한 설정만으로 파일 크기와 시간(일별 기록)을 모두 고려한 파일 롤링 정책 적용이 가능했지만, 파이썬에는 두 경우에 각각 대응되는 파일 핸들러들을 분리하여 제공하고 있습니다. 파이썬에서도 스프링에서처럼 파일 크기와 시간(일별 기록) 둘 다를 고려한 핸들러가 필요하여 해당 내용을 탐색했습니다. 문제 파이썬의 logging 라이브러리는 TimedRotatingFileHandler와 RotatingFileHandler를 제공합니다. 전자는 이름 그대로 시간을 기준으로 롤링 정책을 적용하는 핸들러이고, 후자는 파일의 ..
배경 SICP 스터디 중 매개변수(parameter)와 전달인자(argument)의 개념이 명확하게 서있지 않았다는 걸 깨닫게 되어 간단히 내용을 정리해봤습니다. 내용 1. 매개변수(parameter) - 함수 정의에 사용되는 변수이며, 함수가 필요로 하는 입력값을 나타냅니다. - 함수의 정의 부분(보통 소괄호 안)에 작성되며, 함수 내에서 변수로 사용됩니다. 2. 전달인자(argument) - 함수 실행 시 실제로 사용되는, 함수 호출 시 전달되는 값입니다. - 함수 호출 시에 지정되고, 함수의 매개변수에 할당됩니다. 한 줄 정리 매개변수는 함수의 정의부에, 전달인자는 함수의 호출부에 작성됩니다. 예시 def say_hi(name): # name = 매개변수 print("Hello,", name) sa..
배경 일명 '마법사책'으로 불리는 SICP(컴퓨터 프로그램의 구조와 해석)의 JS버전을 스터디하며 발제를 맡은 부분을 정리한 내용입니다. 연습문제는 일부만 별도 포스트로 다룰 예정입니다. 내용 서론 ㅇ복합 데이터를 이용한 추상화 방식을 탐구 ㅇ이점? - 접착제 제공: 복잡한 개념(유리수)을 단일 객체로 다룰 수 있게됨(분자 + 분모 연결) - 모듈성 향상: 표현부와 연산부를 분리( 추상화) ㅇ순서 1) 유리수 산술 시스템 구현 2) 닫힘(closure), 접착제를 이용한 복합 데이터 구성 (그래픽 언어 예시) 3) 기호 표현식(symbolic expression) 4) 일반적 연산(generic operation)의 구현과 데이터 지향적 프로그래밍 2.1 데이터 추상화 ㅇ데이터추상화: 하나의 복합적인 대..
배경 스프링 부트 프로젝트에서 메모리 관련 트러블슈팅(점유율, 누수, 가비지 컬렉션 등)을 해야하는 상황에서 필요에 따라 메모리를 줄이면서 가비지 컬렉션(GC) 수행 여부를 눈으로 확인할 필요가 있었습니다. 터미널에서 직접 명령어를 통해 옵션을 입력할 수도 있지만 보통은 IDE를 통해 개발을 하기 때문에 IntelliJ를 기준으로 메모리 크기 지정 실행 옵션을 추가하는 방법을 알아보도록 하겠습니다. 메모리 크기 지정 방법 1. 우측 상단 Configurations 클릭 - Edit Configurations - 스프링 부트 앱 선택 2. Modify options 클릭 - Add VM options 체크 - (새로 생성되는 라인에) -Xms16M -Xmx20M 입력 (각각 최소값, 최대값) - Run 버..
배경 ORM의 장단점을 알아보고, 어떤 상황에서 사용되는지 알아보려고 합니다. ORM의 장점 - 객체지향적 접근: 객체와 DB를 맵핑시켜 객체지향 언어로 DB를 조작할 수 있게 됩니다. - 추상화: DB를 추상화하여 접근하므로 구체적인 SQL 지식 없이 간편한 DB 조작이 가능해집니다. - 자동화: 반복적인 CRUD 작업을 자동화할 수 있습니다. 매번 직접 SQL을 작성할 필요가 없기 때문입니다. - 유지보수성 향상: DB 모델이 변경되거나 하는 경우 변경된 부분들에 대한 수정이 상대적으로 용이해집니다. - DB 독립성: ORM을 거쳐 DB에 접근하여 DB에 대한 의존도가 낮아집니다. 만약 DB 벤더가 변경되더라도 그에 따른 제반 작업(SQL 수정 등)을 할 필요가 없어집니다. - 성능 향상: 쿼리 최적..