반응형

안녕하세요

알고리즘을 공부하는 개발자 Henry입니다~!!

 

오늘은 Web Programming을 진행할 때 간단하게 디버깅하는 방법을 말씀드리려고 합니다.

 

웹 공부를 하면서 가장 마주치기 쉬운 문제는 어떤 변수에 값이 들어왔는지 아닌지 확인하는 경우라고 생각합니다.

 

 

이런 경우에는 간단하게 아래와 같은 java script 코드를 가지고 해결할 수 있습니다.

 

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript console.log() Method</h1>

<p>Press F12 on your keyboard to view the message in the console view.</p>

<script>

console.log("Hello world!"); <!-- 바로 여기입니다 -->

</script>

</body>
</html>

 

윗 부분을 보시면 script라는 태그 안에서 특정 값을 log로 찍어볼 수 있습니다.

 

이런 코드가 있을 때, 아래와 같이 개발하고 있던 페이지를 로딩하고 F12버튼을 누른 뒤,

상단의 Console 이라는 부분을 보면 로그가 찍히는 것을 발견하실 수 있습니다.

제가 만들고 있는 홈페이지 입니다.(Bootstrap 참조)

이런 방법은 간단한 방법이지만, 때로는 강력하게 작용할 수 있으니, 알아두시면 좋다고 생각합니다!

 

 

그럼 모두들 코로나 조심하시고, 건강하시길 바랍니다!

 

반응형
반응형

안녕하세요

알고리즘을 공부하는 개발자 Henry입니다.

 

오늘은 Django를 통해 웹 서버를 띄우고 간단한 화면을 출력해보겠습니다.

 

 

 

우선 저는 Ubuntu에서 진행하기 때문에

별도의 환경과는 다른 점 양해 부탁드립니다.

 

저는 아래 블로그를 참고하여 실습을 진행하였습니다.

velog.io/@maryoh2003/Django%EB%A1%9C-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0-kwk5p8orbd

 

Django로 웹페이지 만들기

python-django-logo.jpg 프로젝트 생성 및 준비 1. 프로젝트 생성 2. 프로젝트 폴더로 이동 3. 하위 프로그램(서브 앱) 생성 4. DB(sqlite3) 파일 생성 5. 관리자 계정 생성 6. 서버 실행 환경 설정 > 프로젝트

velog.io

 

 

1. 프로젝트 생성 및 준비

>> django-admin startproject <ProjectName>

>>  cd <ProjectName> 프로젝트 폴더로 이동

>> python manage.py startapp <AppName> 하위 프로그램(서브 앱) 생성

 

 

2. 프로젝트 이름을 mytestsite라고 하고, 서브 앱 이름을 eating이라고 지었습니다.

먼저 settings.py 파일 안에 있는 INSTALLED_APPS에서 내가 만든 서브 앱 이름을 추가해야 합니다.

 

3. 언어를 한국어로 설정하고 (기본은 영어로 되어 있다) 시간대를 한국으로 맞춥니다.

 

 

 

 

4. 다음은 path를 추가해주는데, <서브앱.urls>를 해주면 된다.

url을 분리해준다고 생각하면 된다. 하지만 서브앱 폴더에는 urls라는 파일이 없기 때문에 만들어줘야 한다.

 

 

5. 서브앱 main에서 urls.py라는 파일을 만들어 admin과 path를 import해주면 된다.

urlpatterns에는 위에 프로젝트 폴더 urlpatterns와 동일한 문법으로 경로들을 추가해 줄 수 있다.

 

 

6. 이제 본격적으로 페이지를 만들어 봅시다~!

 

✅ 먼저 서브앱 main안에 templates라는 폴더를 만들고, 또 그 안에 main(서브앱과 같은 이름의 폴더)이라는 폴더를 만든다.
✅ 그 안에 원하는 이름의 파일을 만들고 코드를 작성하면 된다.

 

 

 

아래는 index.html 테스트 코드이다.

 

 

 

7. 서브앱 폴더 안에 있는 url.py에서 만든 파일(index)의 경로를 설정해준다.

views.py를 꼭 import 해줘야 한다

 

 

8. views에서는 함수를 작성해주는데, return 함수는 꼭 작성해줘야 한다. 그래야 파일 실행이 가능하다.

 

 

 

9. 서버 실행 함수인 python manage.py runserver를 하면 이렇게 만든 페이지가 뜨는 것을 볼 수 있다.

 

 

 

10. 기본적인 페이지 띄우는 부분 성공이다!

반응형
반응형

안녕하세요~!

 

알고리즘을 공부하는 Henry입니다~

 

오늘은 제가 Django를 공부해보았습니다.

 

이전에는 Flask를 가지고 python 웹 서버를 만들었던 경험이 있는데요

 

이번에는 Django를 한번 다루어보고 싶어 도전하게 되었습니다.

 

 

프로젝트의 이름은 "오늘 뭐 먹지?" 입니다.

 

직장에 다니면서 뭘 먹을지 고민하다가 

먹은 내용들을 웹사이트에 기록해놓으면 좋겠다 싶어서 

주말이 되어 한번 만들어 보려고 합니다.

 

 

 

1. 우선 Django를 설치하기 위해서 AWS에서 Ubuntu 인스턴스를 빌렸습니다.

각자 개발용 윈도우 혹은 Mac을 사용해서 따라해 보셔도 좋을 것 같습니다.

참조:developer.mozilla.org/ko/docs/Learn/Server-side/Django/development_environment

 

Django 개발 환경 세팅하기 - Web 개발 학습하기 | MDN

Django 개발 환경 세팅하기 Jump to sectionJump to section 이제 장고가 무엇인지 알았으니, 윈도우, 리눅스(우분투), 맥 OS X에서 어떻게 장고 개발환경을 세팅하는지, 설치 후에는 어떻게 테스트하는지 

developer.mozilla.org

 

 

2. Ubuntu에 python3를 설치합니다.

장고가 Python 기반 프로젝트이기 때문에 파이썬이 설치되어 있어야 합니다.

>> python3 -V 라고 쳐서 아무것도 안 나오면, 설치하셔야 합니다.

 

>> sudo apt install python3-pip 로 설치해주세요~

 

3. 가상 환경 소프트웨어를 설치해야 합니다.

>> sudo pip3 install virtualenvwrapper

 

 

4. 각자 PC에 환경설정을 담당하는 숨김 파일 (Ubuntu 같은 경우는) bashrc에 들어가서 아래의 내용은 기입합니다.

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 '
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

 

 

5. 아래 내용을 입력하여 스타트업 파일을 실행시킵니다.

>> source ~/.bashrc

 

그러면 아래와 같이 뜹니다

virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/postmkproject
...
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/get_env_details

 

 

6. 이제 장고를 설치해봅니다.

>> pip3 install django

 

 

7. 설치한 것을 확인해봅시다 (mytestsite라는 폴더를 만들었습니다.)

>> mkdir django_test cd django_test

 

>> django-admin startproject mytestsite

>> cd mytestsite

 

8. 이 폴더 내에서 runserver 명령어와 manage.py 파일을 통해 개발용 웹 서버를 띄울 수 있습니다.

>> python3 manage.py runserver

Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

October 26, 2018 - 07:06:30
Django version 2.1.2, using settings 'mytestsite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

 

 

9. 아래와 같이 뜨면 성공입니다!

(웹 브라우저를 띄워서 http://localhost:8000으로 들어가면 됩니다.)

 

 

10. 지금까지 컴퓨터에 파이썬과 Django를 설치하면 기본적인 웹 화면을 띄워보았습니다.

 

반응형
반응형

 

안녕하세요~~

알고리즘을 공부하는 개발자 Henry입니다ㅎㅎ

 

오늘도 21년 신년을 맞이하여 프로그래머스 문제를 한번 풀어보았습니다.

 

오늘은 문자열을 파싱하여 푸는 문제인데요, 문제는 아래와 같습니다.

 

 

문제 설명

데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다.
간단한 예로 aabbaccc의 경우 2a2ba3c(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, abcabcdede와 같은 문자열은 전혀 압축되지 않습니다. 어피치는 이러한 단점을 해결하기 위해 문자열을 1개 이상의 단위로 잘라서 압축하여 더 짧은 문자열로 표현할 수 있는지 방법을 찾아보려고 합니다.

예를 들어, ababcdcdababcdcd의 경우 문자를 1개 단위로 자르면 전혀 압축되지 않지만, 2개 단위로 잘라서 압축한다면 2ab2cd2ab2cd로 표현할 수 있습니다. 다른 방법으로 8개 단위로 잘라서 압축한다면 2ababcdcd로 표현할 수 있으며, 이때가 가장 짧게 압축하여 표현할 수 있는 방법입니다.

다른 예로, abcabcdede와 같은 경우, 문자를 2개 단위로 잘라서 압축하면 abcabc2de가 되지만, 3개 단위로 자른다면 2abcdede가 되어 3개 단위가 가장 짧은 압축 방법이 됩니다. 이때 3개 단위로 자르고 마지막에 남는 문자열은 그대로 붙여주면 됩니다.

압축할 문자열 s가 매개변수로 주어질 때, 위에 설명한 방법으로 1개 이상 단위로 문자열을 잘라 압축하여 표현한 문자열 중 가장 짧은 것의 길이를 return 하도록 solution 함수를 완성해주세요.

제한사항

  • s의 길이는 1 이상 1,000 이하입니다.
  • s는 알파벳 소문자로만 이루어져 있습니다.

입출력 예

s         result

"aabbaccc" 7
"ababcdcdababcdcd" 9
"abcabcdede" 8
"abcabcabcabcdededededede" 14
"xababcdcdababcdcd" 17

입출력 예에 대한 설명

입출력 예 #1

문자열을 1개 단위로 잘라 압축했을 때 가장 짧습니다.

입출력 예 #2

문자열을 8개 단위로 잘라 압축했을 때 가장 짧습니다.

입출력 예 #3

문자열을 3개 단위로 잘라 압축했을 때 가장 짧습니다.

입출력 예 #4

문자열을 2개 단위로 자르면 abcabcabcabc6de 가 됩니다.
문자열을 3개 단위로 자르면 4abcdededededede 가 됩니다.
문자열을 4개 단위로 자르면 abcabcabcabc3dede 가 됩니다.
문자열을 6개 단위로 자를 경우 2abcabc2dedede가 되며, 이때의 길이가 14로 가장 짧습니다.

입출력 예 #5

문자열은 제일 앞부터 정해진 길이만큼 잘라야 합니다.
따라서 주어진 문자열을 x / ababcdcd / ababcdcd 로 자르는 것은 불가능 합니다.
이 경우 어떻게 문자열을 잘라도 압축되지 않으므로 가장 짧은 길이는 17이 됩니다.

 

 

 

문제 풀이 방식:

문자열을 입력받았을 때,

앞에서부터 몇개의 단위로 압축을 하면 가장 압출률이 좋은지를 판단하는 문제입니다.

해당 문제는 문자열 파싱을 하는 능력과

이중 for문을 통해서 풀 수 있습니다.

 

 

정답 코드:

def solution(s):
    
    if len(s) == 1:
        return 1
    
    result = ""
    length = []
    cut = 1
    
    for i in range(1,len(s)//2+1):
        cnt = 1
        temp_str = s[:i]
        
        for j in range(i,len(s),i):
            if temp_str == s[j:j+i]:
                cnt += 1
            else:
                if cnt == 1:
                    cnt = ""
                result += str(cnt) + temp_str
                cnt = 1
                temp_str = s[j:j+i]
        if cnt == 1:
            cnt = ""
        result += str(cnt) + temp_str
        length.append(len(result))
        result = ""
    #print(length)
    return min(length)
        
        
        

 

문제는 푸는 방법을 잘 살펴보시면

따로 특별한 알고리즘일 있는 것이 아닌,

순차적으로 완전탐색하는 방법으로 풀어야 하는 것을 아실 수 있으실 거예여.

 

그래도 압축이라는 것이 전체 길이의 /2가 최대로 압축할 수 있는 가능성이 있기 때문에

그 때까지 단위를 올려가면서 압축률을 비교해보는 문제입니다.

 

 

아래는 저의 youtube 강의입니다.

혹시 푸시다가 어려우시면 언제든지 오셔서 시청해주세요~~

좋아요 구독도 눌려주세요!ㅎㅎ

 

www.youtube.com/watch?v=9bVloX96Dj4

 

반응형
반응형

1보다 큰 모든 정수는 소수와 합성수로 이루어진다.

 

소수는 1과 자기자신으로만 나누어떨어지는 수이고,

그 외 나머지를 합성수라고 한다.

 

1은 소수도 합성수도 아니다.

출처: https://sustainable-dev.tistory.com/32

 

소수를 찾는 방법은 에라토스테네스의 체 방식으로 찾을 수 있다.

 

1. 2를 제거하고, 2의 배수를 제거한다.

2. 3을 제거하고, 3의 배수를 제거한다.

3. 해당 방법을 sqrt(n)까지 반복한다. - sqrt는 루트

자신 * 자신 < n 때까지만 반복한다.

 

 

 

 

 

 

반응형
반응형

 

2020년 처음에 목표로 잡은 것 중에 어떤 것을 이루었을까

생각하며 이 글을 적어 내려간다.

 

이전에 친구들과 같이 작성했던 버킷리스트를 열어보니 아래와 같은 내용이 적혀있었다

 

1. 유튜브 구독자 100명 이상

2. 블로그 방문자 누적 500명 이상

3. 취업

4. 유튜브에 영어로 콘텐츠 넣기

5. 오픽 IM3 이상

6. 정보처리기사 취득

 

 

생각해보면 2020년은 직장과 취업에 집중하며 지냈던 시기였다.

신세계아이앤씨를 나오고, 네이버 인턴십에 들어갔고, 이제 앞으로 입사할 직장에 이르기까지..

취업이 가장 큰 목표였으며, 스펙을 쌓기 위해 5번, 6번 목표를 세웠다.

 

그럼 현재 이룬 것들을 살펴보자

 

1. 유튜브 구독자 100명 이상

2. 블로그 방문자 누적 500명 이상

3. 취업

4. 유튜브에 영어로 콘텐츠 넣기

5. 오픽 IM3 이상(오픽 IM1 취득)

6. 정보처리기사 취득(필기 시험만 합격)

 

 

50% 이상의 달성률을 보이고 있다.

중간 중간 과정을 보았을 때는 몰랐는데,

처음에 목표를 설정하고 살아갔던 것이, 삶에 방향성을 지켜주었던 것 같다.

 

 

자 이제 2021년 목표를 세워본다.

21년은 직장에서 적응하며 이루어야 할 목표가 방향이 될 것이다.

 

1. 유튜브 구독자 500명 이상

2. 블로그 하루 최대 500명 방문자 넘기기

3. 직장에서 잘 적응하기

- 사람들 앞에서 하나님을 놓지 않고 강하게 붙잡기, 술 마시는 문제도 그렇고, 회사에 적응하는 것들도 매 순간 기도하고 성령을 의지하며 회사에서도 하나님을 증거하기

4. 토익 800점 넘기기

5. 정보처리기사 취득

6. 정보보안기사 취득

7. 오픽 IM3 이상

8. 결혼 잘하기

- 결혼을 잘 한다는 것은 결혼 준비부터 시작해서, 모든 영역을 기쁨과 감사함으로 한다는 것을 의미한다.

마냥 결혼식을 잘하는 것이 목표가 아니라, 연애부터 결혼을 준비하는 순간 순간들을 서로 사랑하며 보내는 것이다.

당연하지 않은 순간들을 소중히 여기자!

 

 

 

반응형
반응형

안녕하세요 여러분

알고리즘을 공부하는 개발자 Henry 입니다.

 

제가 2020년 하반기 취업을 준비하며

매일 혼자 카페에 출근하여 하루의 다짐과 일정, 계획을 남기곤 했었는데요

 

꾸준히 공부하고, 성실하게 준비한 덕분에

2020년 하반기 채용에 성공하게 되었습니다.

 

서류부터 시작해서, 필기 시험, 면접 전형까지

힘들때마다 하나님께 기도하며 

다시 새 힘을 얻고 새 마음을 품곤 했는데,

연말에 좋은 결과를 주셔서 감사한 마음이 들었습니다.

 

 

앞으로 Henry의 취준 로그는 그만 하고,

Henry의 직장 로그를 남기도록 하겠습니다.

 

꾸준히 성장하는 개발자 Henry를 응원해주세요!

반응형
반응형

안녕하세요.

알고리즘을 공부하는 개발자 Henry입니다~!

 

오늘은 제가 지난 2020 하반기 취업준비 때 있었던 일 중 기억에 남는 1가지 일을 말씀드리려고 합니다.

 

그것은 바로, 코스콤 채용을 준비했다는 것입니다.ㅎㅎ

 

 

처음에 코스콤에 대해서 어떤 회사인지 몰랐다가

조금 알아봤더니, 얼마나 좋은 회사인지 바로 알게 되었습니다.

 

 

이번 2020 하반기에는 코스콤 신입 직원을 1차와 2차 2번에 걸쳐서 뽑게 되었고,

저는 1차, 2차 서류 합격을 받았습니다.

 

1. 서류 전형

 

별다른 스펙은 없었는데, 그래도 인턴 했던 경험이 좋은 영향을 미쳤던 것 같습니다.

저는 특이한 것이 따로 영어 성적이 없었습니다.

인턴 경험 2개만 있었고, 자소서를 열심히 적었습니다.

그랬더니 합격이었습니다!!ㅎㅎ(자소서도 많이 보는구나 라고 생각할 수 있었습니다.)

 

 

2. 필기전형

 

서류 합격하고 필기 시험을 보러갔습니다.

 

 

 

코로나로 인해서 외출을 잘 안했었는데,

아침 일찍 일어나 고등학교에 가니, 다시 학생이 된 것 같기도 하고

신선한 느낌이 들었습니다.

 

코스콤 시험을 보면서 느꼈던 점은

인성 - 적성 - CS - 논술, 총 4가지 유형을 평가하는 것이

생각보다 빡세다는 것이었습니다.

 

아래는 제가 필기 시험을 봤던 Tip 입니다.

인성: 성심성의껏 너무 꾸미려고 하지 않고 보았습니다.

적성: 문제가 어려운 편이 아니여서, 소금물, 농도, 거속시 이런거 준비했고, 최대한 많이 풀려고 했습니다.

CS: 컴퓨터 관련 지식은 생각보다 세부적인 것들을 물어보았습니다. 기본적인 정처기보다는 더 세부적으로 내용이 나왔습니다.

논술: 논술은 정처기와 비슷한 유형으로 나왔지만, 정처기 수준보다는 높았다고 말씀드릴 수 있습니다.

 

 

*저는 솔직히 인성, 적성까지는 평타로 보고

CS부터 어렵다는 것을 체감했습니다. CS는 찍어도 된다고 하셔서 최대한 잘 찍으려고 했습니다.

논술은 어렵습니다. 코드를 이해하는 부분과, 빈칸을 넣는 부분도 있고, 컴퓨터 지식을 물어보는 것도 있습니다.

1문제 필수로 풀어야 되는 문제 + 3문제 중 2문제 선택해서 푸는 문제가 있습니다.

 

 

시험을 모두 마치고, 학교를 나오는 길에 햄버거를 나눠주었습니다.

저는 오후에 농협하나로유통 필기 시험이 있어서, 햄버거를 받지 못하고 빠르게 나와야 해서 

조금 아쉬웠습니다.ㅠㅠ

 

 

얼마 후 시험 결과가 나왔습니다. 

 

결과는 합격!! 이었습니다. 오예~~~~~

 

 

CS랑 논술을 찍다시피 풀어서 큰 기대를 하지 않고 있었는데, 

합격 문자를 받고 너무 행복했습니다.

 

 

 

코스콤 필기 시험을 보고 느낀 점이 있습니다.

그것은 바로 어렵다고 포기하지 않는 정신입니다.

 

내가 어려우면 다른 사람들도 어렵고,

그럴 수록 포기하지 않고 성실하게 문제를 풀면 좋은 결과가 있다는 것을 알게 되었습니다.

 

 

3. 1차 면접 준비

 

합격자 발표가 나고 5일 뒤에

바로 1차 면접이 있었습니다.

 

저는 솔직히 떨어질 줄 알고 준비하지 않고 있었습니다.ㅜㅜ

 

심지어 영어면접, PT면접, 경험면접 3가지나 보는 곳이기에

준비되지 않는 상태에서 불안했습니다.

 

하지만 포기하지 않았습니다.

 

바로 전화영어를 신청하고 매일 30분식 외국인과 전화 통화를 하였습니다.

그리고 PT면접에서는 뭐가 나올지 모르기 때문에 그냥 CS 지식 공부했습니다.

경험 면접은 자소서 기반 면접일 것 같아서 자소서 기반으로 예상 질문과 답변을 준비하였습니다.

 

5일 동안 3가지 분야에서 꾸준히 준비하였습니다.

 

 

 

4. 면접 당일

 

면접 당일 날 오전에 농협하나로유통 최종 면접을 먼저 보았습니다.

토론 면접, 집단 면접을 보면서 코스콤 면접 전에 긴장을 풀 수 있는 시간이었습니다.

 

 

 

 

 

 

코스콤은 좋은 회사라고 생각이 들어서인지

막상 회사 앞에 오니, 심장이 빨리 뛰고 긴장이 되었습니다.

 

그래도

"준비한만큼만 보여주고 오자"

라는 생각을 잡고, 당당하게 들어갔습니다.

 

 

회사 내부는 깨끗했고,

화장실은 전망이 좋았습니다.

 

 

면접은 3가지를 보았는데,

3가지 면접 모두 개별 면접이었습니다.

저는 PT - 영어 - 경험 면접 순으로 보았습니다.

 

면접에 대한 평을 짧게 하자면,

PT: 45분인가? 정해진 시간안에 PT를 작성하여, 해당 문제를 면접관에게 설명해야 합니다.

영어: 외국인과 짧은 대화를 하면 됩니다. 생각보다 간단한 질문을 하는 편입니다.

아마 기본 회화가 가능한 지 보는 편입니다.

경험: 일반적인 자소서 기반 질문을 하는 편입니다.

 

 

면접을 보고 나오면서

그렇게 못봤다는 생각은 안들었습니다.

 

하지만 아쉽게도 코스콤의 여정은 여기까지 였습니다.ㅠㅠ(1차 면탈)

 

 

그래도 좋은 경험 하였습니다.

 

앞으로 더욱 성장하는 개발자가 되어야겠다고 다짐하며

 

긴글 읽어주셔서 감사합니다!!ㅎㅎ

 

 

 

 

반응형

+ Recent posts