IT

    [우테캠pro] 프리코스 1주차 - 자바 코딩 컨벤션

    [우테캠pro] 프리코스 1주차 - 자바 코딩 컨벤션

    코딩 컨벤션이란? 💡 코드의 가독성을 높이고 작성한 코드를 효율적으로 유지 보수하기 위한 공통 규칙을 의미한다. 협업을 할때 다른 사람이 작성한 코드도 나와 같은 스타일이라면 코드를 읽고 수정하는데 드는 비용이 감소합니다. 팀 작업을 한다면 처음으로 익히는 것이 컨벤션이지 않을까 싶습니다. 프리코스에서도 처음으로 주어지는 과제에서 코딩 컨벤션, 커밋 메세지 일관성을 맞추는 것을 요구하고 있습니다. 코딩 컨벤션 기준 프리코스 숫자야구 게임에서는 네이버 캠퍼스 핵데이 코딩 컨벤션을 기준으로 합니다 주요 내용을 보면 다음과 같습니다. 새줄 문자는 LF 파일의 마지막에는 새줄 식별자에는 영문/숫자/언더스코어만 허용 한국어 발음대로의 표기 금지 클래스 이름에 명사 사용 인터페이스 이름에 명사/형용사 사용 메서드 ..

    [우테캠pro] 프리코스 1주차 - 숫자야구 리뷰

    [우테캠pro] 프리코스 1주차 - 숫자야구 리뷰

    넥스트스텝 우아한테크캠프Pro 5기 프리코스 과정을 진행하며 정리한 게시글입니다. TDD TEST CODE : 테스트 코드 PRODUCTION CODE : 실제 동작하는 코드 TDD란 TFD(Test First Development) + 리팩토링 분석, 설계 기술이기도 하다 TDD를 잘하려면 요구사항 분석 → Todo List가 잘 정리 TDD 사이클 실패하는 테스트를 구현 테스트가 성공하도록 프로덕션 코드 구현 리팩토링으로 프로덕션 코드, 테스트 코드 개선 반복 TDD 원칙 실패하는 단위테스트를 작성할 때까지 프로덕션 코드를 작성하지 않는다 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 어떻게 시작해야 할까? ..

    [우테캠pro] 프리코스 1주차 - 학습테스트

    1. String 클래스에 대한 학습 테스트 1-1 요구사항1 "1,2"을 ,로 split 했을 때 1과 2로 잘 분리되는지 확인하는 학습 테스트를 구현한다. "1"을 ,로 split 했을 때 1만을 포함하는 배열이 반환되는지에 대한 학습 테스트를 구현한다. 힌트 배열로 반환하는 값의 경우 assertj의 contains()를 활용해 반환 값이 맞는지 검증한다. 배열로 반환하는 값의 경우 assertj의 containsExactly()를 활용해 반환 값이 맞는지 검증한다. 테스트 @Test public void splitTest(){ // given String target_1 = "1,2"; String target_2 = "1"; // when String[] result_1 = target_1.sp..

    [python] 시간 중복 계산

    문제 A 직원은 09:00 출근 14:00 퇴근 B 직원은 12:00 출근 20:00 퇴근 점심 시간은 12:00-13:00 점심시간을 제외하고 A직원이나 B직원이 가게에 있었던 시간은 몇분인지 구하시오. 접근 방식 자료구조 중 SET은 중복이 존재하지 않는다는 특징이 있습니다. 중복제거((A의 근무 시간 목록) + (B의 근무 시간 목록)) - (점심시간) 중복 제거 후 결과의 길이를 구하면 중복 제거된 시간을 찾아낼 수 있습니다. def get_work_time(start, end): work_min_list = [] work_range = [] bgng_dt = datetime.datetime.strptime(start, "%Y%m%d%H%M") end_dt = datetime.datetime.st..

    [Django] app 자동 추가

    Django로 개발을 진행하다보면 자연스럽게 생성한 app을 settings.py 하위에 INSTALLED_APPS 안에 등록하게 됩니다. 등록되는 앱의 수가 적다면 하나씩 등록해도 되지만 앱 개수가 많아진다면 어떤 앱이 등록되었는지 어떤 앱이 등록되지 않았는지 정리가 힘들게 됩니다. 이 문제를 해결하기 위해 프로젝트에 등록되는 앱들을 하나의 폴더에 넣고 해당 폴더 안의 모든 앱들을 자동으로 INSTALLED_APPS에 등록되도록 합니다. 프로젝트 생성 및 구조 Django-admin startproject auto_app_test 기본적으로 프로젝트 명으로 메인 폴더가 생성되고 하위에 settings.py가 존재합니다. 기본 app 생성 및 추가 cd auto_app_test python manage...

    [Django] 개발을 위한 가상 환경 세팅

    python3을 이용하여 한 가지 프로젝트만 진행한다면 전역에 패키지를 설치해도 무방하지만 프로젝트별로 사용하는 패키지 버전이나 종류가 달라지는 경우가 흔합니다. 각 프로젝트 별 가상환경을 생성하여 프로젝트별 불필요한 패키지가 설치 되지 않도록 합니다. 가상 환경을 생성하는 base python은 프로젝트별로 버전이 같아야 하므로 명시해주는 것이 좋습니다. 가상환경 생성 python3 -m venv 저는 맥OS를 사용중이라 python2, python3가 기본적으로 모두 설치되어 있어서 python3로 입력하였습니다. 생성되는 가상환경은 운영체제 별로 달라서 window에서 생성한 가상환경이 mac에서 호환되지 않는 경우도 있습니다. 가상환경 실행 *Mac source .//bin/activate *Wi..

    [Django]민첩한 개발을 위한 Django 마이그레이션 전략

    [Django]민첩한 개발을 위한 Django 마이그레이션 전략

    진행 배경 기존에 스프링 + mybatis 조합으로 웹 개발을 배운 상태로 새롭게 진행하는 프로젝트에서는 장고를 사용해야 했습니다. 장고의 orm과 마이그레이션 기능은 넘어야 할 산으로 다가왔습니다. 아직 JPA를 접하지 못한 상황에서 django ORM을 먼저 접했기 때문에 빠른 개발을 위해 복잡한 마이그레이션을 포기하고 설계 시 몇 가지 선택을 했습니다. 기존에 개발을 진행했던 단계는 요구사항 분석 -> 데이터베이스 설계 -> 코드개발 -> 테스트 -> 배포 순으로 진행 하였는데 django를 처음보고 느낀 것은 코드개발 -> 데이터 베이스 설계로 기존 개발 스텝이 꼬이는 느낌을 받았습니다. 아직 기존 개발단계를 버리지 못한 단계에서 갑자기 순서를 바꿔 진행 할 수 없었기 때문에 기존처럼 DB설계 후..

    [jQuery] dom조작, css, 속성메소드

    [jQuery] dom조작, css, 속성메소드

    jQuery Dom 조작 💡 DOM에 새로운 요소를 추가/삭제, 복사, 속성 변경 등을 실시할 수 있다. 이를 DOM 조작(DOM Manipulation)이라 한다. 1. DOM 추가 예제 Hawaiian Vacation Get Price DOM 추가시 사용할수 있는 메소드 append() : 선택 요소의 닫는 태그 앞에 콘텐츠를 삽입한다. prepend() : 선택 요소의 여는 태그 뒤에 콘텐츠를 삽입한다. after() : 선택 요소의 뒤에 콘텐츠를 삽입한다. before() : 선택 요소의 앞에 콘텐츠를 삽입한다. 2. DOM 제거 예제 Hawaiian Vacation Get Price DOM 조작 관련 메소드 링크 : https://api.jquery.com/category/manipulation..

    [jQuery] 선택자, 필터

    [jQuery] 선택자, 필터

    jQuery 선택자 💡 jQuery 에서 사용 가능한 선택자를 알아보자 jQuery에서는 CSS 스타일의 선택자를 사용 가능하다. $(선택자 , [ 컨텍스트 ] ) 컨텍스트는 검색의 시작점을 지정, 생략하면 문서전체에서 검색 컨텍스트를 지정하면 그 하위로 검색범위가 제한 1. 기본선택자 타입 선택자 ( ) 💡 html 태그 $('h1') , $('p'), $('h1 , p') 클래스 선택자 ( . ) 💡 요소내의 class를 가지고 선택 ( 여러개 존재 가능 ) $('.class'), $('.class_name') id 선택자 ( # ) 💡 요소내의 id 를 가지고 선택 (id는 고유하다, 중복될 경우 상단에 먼저 선언된것이 선택된다..

    [jQuery] jQuery란

    jQuery란? 💡 크로스 플랫폼을 지원하는 경량의 자바스크립트 라이브러리 특징 크로스 플렛폼을 지원하는 jQuery는 어떠한 브라우저에서도 동일하게 동자한다. 브라우저 호완성을 고려하여 대체코드를 작성할 필요가 없다. 네이티브 DOM API보다 직관적이고 편리한 API를 제공한다. CSS 스타일의 selector를 사용할 수있으며 조작 또한 유연하게 할수 있다. 이벤트 처리, Ajax, Animation 효과를 쉽게 사용 할 수 있다. 다양한 플러그인이 존재하며 다른 라이브러들과 충돌을 일으키지 않는다. jQuery 문법 $(선택자).동작함수() ; $() 함수는 선택된 HTML 요소를 제이쿼리에서 이용할 수 있는 형태로 생성해 주는 역할을 합니다. $() 함수의 인수로는 HTML 태그 이름 뿐만 아니..