'Development' 카테고리의 글 목록 (19 Page)
본문 바로가기

Development

(155)
[완전 탐색] 프로그래머스 level 1 최소직사각형 python 풀이 무식해 보여도 사실은 최고의 방법일 때가 있지요. 완전 탐색? 모든 가능한 경우의 수를 시도하여 원하는 결과를 찾는 알고리즘 기법. 브루트 포스(Brute Force)라고도 함. 경우의 수가 많거나 입력 크기가 큰 경우에는 계산 비용이 높아질 수 있다. 완전 탐색은 작은 규모의 문제나 기준이 명확한 경우에 유용함. 해결 흐름 1. 가로나 세로 중에서 가장 큰 값이 다음 직사각형의 가로나 세로 값보다 작으면 교체 -> 즉 가장 큰 값을 찾아야함 2. 만약 가로 값이 가장 큰 값 일때, 세로 값도 다른 직사각형의 세로 값보다 커야함 -> 즉 작은 값들중 가장 큰 값을 찾아야함 3. 직사각형들 중에서 하나의 직사각형 가로나 세로중 더 큰 값들 중에 가장 큰 값 * 작은 값들 중에서 큰 값 코드 def solu..
[Hash] 프로그래머스 level 1 폰켓몬 Java 풀이 Hash란? Hash는 임의 크기의 데이터를 고정 크기의 값으로 변환하는 함수 또는 알고리즘을 의미 HashSet? HashSet은 중복되지 않는 고유한 값을 저장하기 위한 자료 구조 해결 흐름 1. int[] nums의 중복 요소를 제거하고 그 길이를 리턴 -> HashSet 사용 2. nums/2 개 만큼 폰켓몬을 데려갈 수 있는데 nums/2 크기가 HashSet의 크기보다 작다면 최대 종류 별로 nums/2 까지 밖에 못 데려감 -> nums/2 리턴, HashSet 크기가 nums/2 보다 작다면 HashSet 크기 리턴 입출력 예 nums, result [3,1,2,3] 2 [3,3,3,2,2,4] 3 [3,3,3,2,2,2] 2 코드 import java.util.*; class Soluti..
[Docker]docker, docker swarm, docker compose 간단 정리 Concepts 애플리케이션의 개발, 배포, 실행을 컨테이너를 통해 가능하게 해주는 플랫폼. 컨테이너란 개념은 새로운 것이 아니며, 이전과 달리 새로운 것은 어플리케이션을 쉽게 컨테이너를 통해서 배포하게 해줌. Container? Image? 컨테이너는 실행되고 있는 이미지에 의해 launch 된다. Image 런타임, 라이브러리, 환경 변수, 설정 등 즉 어플리케이션을 실행하기 위한 모든 것을 포함하는 실행 가능한 패키지 Container 실제로 이미지 위에서 실행되고 있는 런타임 인스턴스 Container VS VM VM의 경우 각각 자신만의 OS를 갖고있음 컨테이너는 기존의 OS 위에서 구동됨 Dockerfile? Container의 환경을 정의하는 파일 # syntax=docker/dockerfi..
[django] Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField' 경고? 경고 내용을 읽어보면 각 모델에서 primary key 타입을 명시하지 않아서 생긴 경고입니다. 하지만 장고에선 자동으로 primary key로 사용할 타입을 자동으로 설정해준다고 합니다. By default, Django gives each model an auto-incrementing primary key with the type specified per app in AppConfig.default_auto_field or globally in the DEFAULT_AUTO_FIELD setting. For example: id = models.BigAutoField(primary_key=True) 위 코드는 모델에서 사용할 primary key를 BigAutoField(1부터 시작하는 64bi..
[django] class-based view와 function-based view? 학교 웹서버 컴퓨팅 수업에서 프로젝트를 진행하다가 간단한 홈페이지를 만들고 싶어서 HomeView를 어떻게 구현할까 찾던 중에 class-based view라는 것을 알게 되었습니다. 학교 수업 시간에 배운 View는 다음과 같았습니다. @login_required(login_url="common:login") def question_create(request): """ pybo 질문등록 """ if request.method == "POST": form = QuestionForm(request.POST) if form.is_valid(): question = form.save(commit=False) question.author = request.user # 추가한 속성 author 적용 questio..
[특강] 기술 전환점에서의 오픈소스와 개발자 - 래블업 신정규 대표님 특강 일정: 2023년 5월 15일 (월) 특강 장소: 국민대학교 미래관 611호 제목: 기술 전환점에서의 오픈소스와 개발자 발표자: 신정규 대표/연구원 (구글 Developers Experts, (주)래블업) 요약: 이 강연은 오픈소스 활동과 함께한 20년 동안 발표자가 경험한 다양한 삶의 이야기들과 함께, 소프트웨어 개발자들이 시대의 변화를 마주하는 방법에 대한 시각을 나눕니다. 한국에 몇 없는 구글 개발자인 신정규 대표님의 강연을 듣게 되어 영광이었습니다. 소중한 강연을 들을 기회를 마련해 주신 국민대학교 김상철 교수님께 감사드립니다. 강연을 통해 앞으로 프로그래머가 준비해야 할 기술들과 임해야 할 자세, 그리고 오픈소스의 기능과 중요성을 느끼게 해 준 특강이었습니다. 프로그래밍의 의미? 20세기 ..
[특강]개발자는 코딩하는 사람이 아니다 위 링크 영상을 바탕으로 작성한 글입니다. "개발자라 한다면 스스로를 코딩하는 사람으로 정의하지 않았으면 좋겠다" "비즈니스 문제를 해결하는 사람으로 생각하는 것이 좋겠다." 배달의민족 김범준 대표의 좋은 개발자란 어떤 사람인지의 대해서 나오는 영상입니다. 엘리베이터를 기다리는 것이 지루하다는 문제가 있다고 생각해 봅시다. 사람들은 '엘리베이터가 늦게 오는 것 같다'라고 말합니다. 이에 대해 어떤 두 회사는 각각 다른 방법으로 문제를 해결합니다. A 회사는 많은 돈을 써서 엘리베이터 속도를 높이는 공사를 합니다. B 회사는 엘레베이터 앞에 거울을 설치합니다. A 회사는 엘리베이터가 실제로 느리다고 문제를 해석했고, B 회사는 엘리베이터를 기다리는 그 순간의 지루함을 문제로 해석하였습니다. 엘레베이터를 ..
[Spring]Github Actions로 Springboot CI 구현하기, postgres 설정 여기서 CI/CD란? CI/CD는 Continuous Integration(지속적 통합) / Continuous Delivery(지속적 전달)의 줄임말입니다. 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 배포할 수 있습니다. CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "통합 지옥(integration hell)")를 해결하기 위한 솔루션입니다. "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미합니다. 지속적인 통합이 제대로 구현되면 애플리케이션 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 리포지토리에 병합됩니다. 따라서 여러 명의 개발자가 동시에 애플리케이션 개발과 관련..