오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

분류 전체보기 245

[프로그래머스, 2021 카카오 인턴쉽] 표 편집 python

https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 1. 해결 방법 일반적인 리스트로 구현하면 효율성 문제를 통과하지 못한다. 따라서 딕셔너리를 통해 더블 링크드 리스트를 구현해줘야한다. 더블 링크드 리스트는 현재 노드의 값과 전후 정보를 갖고 있는 자료구조이다. 주의해서 봐야할 점은 명령어 Z와 명령어 C에서 연결 정보를 업데이트하는 방식을 주의해서 보길 바란다..

[프로그래머스, 2021 카카오 인턴쉽] 거리두기 확인하기 python

https://programmers.co.kr/learn/courses/30/lessons/81302?language=python3 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 1. 해설 아래와 같은 로직을 구현하면 된다. 1. 지원자들..

[Docker] 자 떠나자 고래 잡으러 : Docker로 Django+Nginx 배포하기

서비스를 만들면서 어려운 점을 순위 매겨본다면 배포는 분명 세 손가락안에 들 것이다. 개발을 시작한지 얼마되지 않아서 클론 코딩이나 게시판 같은 어플리케이션을 만든 후 마주하는 암흑어둠의 흑막인 킹제네럴갓충무공카이사르알렉산더 악당같은 검은 터미널 창이 앞으로 길이 쉽지 않을 것을 보여주는 것 같다. 물론 배포가 어려운 것은 웹서버나 WAS의 내부적인 동작을 명확히 알지 못하기 때문일 것이다. 이런 어려움을 제외하더라도 배포는 결코 쉬운 과정이 아니다. 이번 포스팅은 배포의 어려움을 덜어줄 방법에 대해 소개할 것이다. 바로 도커를 이용한 Django(WAS) + Nginx(Web server) 배포다. 물론 도커가 배포의 어려움만을 덜어주는 기술은 아니다. 여러 장점 중 하나가 쉽게 배포할 수 있게 해주는..

RESTful API란?

ReSTful API란? ReST : Representational State Transfer 해석하면 표현 상태 이전이라는 API라는 건데 사실 정확히 어떤 의미인지는 와닿지 않는다. 그냥 간단히 이렇게 정리해보자 RESTful API는 HTTP를 더 잘 활용하기 위한 API 명세이다. 설계 방법을 조금 더 어려운 말로 명세(Specification)이라고 한다. 본격적인 설명에 앞서서 API 명세가 왜 필요한지 생각 해보자 API 명세가 필요한 이유? API가 언제 사용되는지 생각해보자. 대표적인 예로는 웹 어플리케이션을 만들때 프론트엔드와 백엔드를 구분하고 백엔드 API를 프런트 즉 클라이언트 단에서 사용한다. 만약 API가 설계 규칙이 없이 만들어졌다면 프런트엔드에서 백엔드 API에서 원하는 응답..

Technology/Web 2021.06.28

[css] 화면 사이즈 변경시에도 이미지 중앙을 보여주는 방법 (반응형)

헤더의 경우, 반응형으로 디자인 할 때 화면 사이즈 변경시 이미지 높이 변화없이 이미지의 중앙만 보여줘야 할 때가 있다. 본래의 경우 화면크기가 줄어들면서 이미지 크기가 비율에 맞게 줄어들거나 아래와 같은 조건을 주면 img{ display:block; margin: 0 auto; } 하지만 이렇게 해준다면 오른쪽부터 사라지도록 되어 있다. 하지만 헤더의 특정 영역에 화면에 크기에 관계없이 반드시 노출되어야할 이미지나 로고 있다면 위와 같은 방식으로는 조금 어려울 것이다. 오늘은 화면 사이즈 변경시에도 이미지의 중앙을 보여주는 css를 알아 보겠다. body 태그 내의 코드는 다음과 같다. 이 상태에서 css는 다음과 같다. .img-container-size{ position: relative; wid..

[객체 지향 프로그래밍] 1. 객체지향 프로그래밍이란?

본격적인 설명에 앞서서 앞으로 몇개의 포스팅동안 객체지향 프로그래밍(OOP, Object Oriented Programming)과 그것의 기본 원칙인 SOLID 원칙에 대해서 다뤄보도록 하겠다. OOP를 이해하려면 몇가지 중요한 개념을 알아야하는데 이 개념이 지나치게 추상적이다. 객체라는 말 자체도 일상적으로 사용하는 언어가 아닐뿐더러 OOP의 중요 개념들이 한번에 정의 내리기가 어렵다. 프로그래밍을 시작한지 얼마되지 않아 "객체 지향의 사실과 오해" 라는 책을 읽은 적이 있다. 읽으면서 이게 철학책인지 기술서적인지 굉장히 혼란스웠다. 저자는 이상한 나라의 앨리스에서 나오는 등장인물을 통해 OOP에서 사용하는 개념인 캡슐화, 상속, 책임, 메세지와 같은 단어들의 개념을 하나씩 설명해준다. 물론 익숙한 이..

Paradigm/OOP-t 2021.06.25

[Javascript] 이벤트 진행 막기 or 다시 시작

이벤트를 다룰 때 종종 이벤트의 본래 행동은 막은 후 다른 것을 진행한 다음 다시 그 이벤트를 진행해야 할 때가 있다. 오늘은 이러한 상황에서 사용하는 명령어를 간단하게 알아보겠다. 예제 코드는 아래와 같다. 먼저 JQuery를 사용했기 때문에 CDN으로부터 가져와준다. 여기서 핵심은 이벤트는 아래 코드로 막아줬다는 점이다. event.preventDefault(); 그리고 마지막 줄의 코드로 다시 해당 이벤트를 할당해줬다. unbind('event')는 JQuery에 의해 등록된 이벤트인 event를 제거해준다는 의미이다. 작성한 이벤트를 제거해주고 다시 클릭을 해주면 원래 태그가 해야하는 역할을 하게 된다. event.preventDefault() 반대라고 생각하면 된다. $(this).unbind(..

[Javascript] Client에서 cookie 접근

종종 서버에서 보낸 쿠키가 제대로 존재하는지 확인 하기 위해서 웹 브라우저에서 쿠키에 접근해볼 때가 있다. 오늘은 위와 같은 상황에서 console에서 쿠키를 다루는 간단한 명령어에 대해 알아보자. 아래 명령어를 사용하면 쿠키가 문자열 형태로 반환된다. document.cookie 클라이언트에서 쿠키를 추가하고 싶다면 아래와 같이 써준다. document.cookie = "key=value"; 그렇다면 쿠키는 어떻게 제거할까? 쿠키를 제거하는 방법이 딱히 존재하지는 않고 expires를 아래와 같이 설정해 해당 쿠키를 사용기한이 지난 쿠키로 바꿔서 브라우저에서 제거 하도록 한다. var deleteCookie = function(name) { document.cookie = name + '=; expir..

[프로그래머스] 광고 삽입 python (2021 Kakao Blind Test)

https://programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr from datetime import datetime, timedelta def str2sec(string): """ 시간 문자열을 초로 바꿔서 int로 반환 """ hour, min, sec = map(int, string.split(':')) return hour * 3600 + min ..