profile
개발자, 학생

12장 : 창발성

*<클린 코드>를 참고하여 작성한 글입니다.켄트백이 제시한 단순한 설계 네가지가 소프트웨어 설계 품질을 크게 높여준다고 믿는다.모든 테스트를 실행한다 : 테스트가 불가능한 시스템은 검증도 불가능이다. 검증이 불가능한 시스템은 출시하면 안 된다. -> 테스트 케이

2023년 9월 13일
·
0개의 댓글
·

11장 : 시스템

*<클린 코드>를 참고하여 작성한 글입니다.시스템 제작과 시스템 사용을 분리하라관심사 분리체계적이고 탄탄한 시스템 -> 모듈성을 깨서는 안 된다. 설정 논리는 일반 실행 논리와 분리해야 모듈성이 높아진다. 주요 의존성을 해소하기 위한 방식, 즉 전반적이며 일관적

2023년 9월 13일
·
0개의 댓글
·

10장 : 클래스

*<클린 코드>를 참고하여 작성한 글입니다.클래스 체계 : 프로그램은 신문 기사처럼 읽힌다. 추상화 단계가 순차적으로 내려간다.캡슐화 : 변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야한다는 법칙도 없다. 때로는 protected로 선언해

2023년 9월 9일
·
0개의 댓글
·

9장 : 단위 테스트

*<클린 코드>를 참고하여 작성한 글입니다.TDD 법칙 세가지첫째: 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.둘째: 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.셋째: 현재 실패하는 테스트를 통과하라 정도로

2023년 9월 9일
·
0개의 댓글
·

DB 페이징 문제 해결

이번에도 php 코드를 볼 일이 생겼다(...)페이징 처리를 하는 문제였는데, 중간에 삭제된 글이 있으면 게시글이 중복적으로 나타나는 문제였다.코드를 살펴보니 존재하는 게시글의 dbindex를 저장한 파일이 있고, 그 파일을 읽어와서 현재 쿼리로 넘어온 페이지숫자의 인

2023년 9월 6일
·
0개의 댓글
·

8장 : 경계

*<클린 코드>를 참고하여 작성한 글입니다.Map과 같은 경계 인터페이스를 이용할 때는 이를 이용하는 클래스나 클래스 계열 밖으로 노출되지 않도록 주의한다. 이 인스턴스를 API의 인수로 넘기거나 반환값으로 사용하지 않는다.외부 코드를 익히기는 어렵다. 외부 코

2023년 9월 2일
·
0개의 댓글
·

7장 : 오류 처리

*<클린 코드>를 참고하여 작성한 글입니다.오류 코드보다 예외를 사용하라오류가 발생하면 예외를 던지는 편이 낫다. 그러면 호출자 코드가 깔끔해진다.Try-Catch-Finally 문부터 작성하라예외에서 프로그램 안에다 범위를 정의한다 는 사실은 매우 흥미롭다.

2023년 9월 1일
·
0개의 댓글
·

6장 : 객체와 자료구조

*<클린코드>를 참고하여 작성한 글입니다. 객체와 자료구조 자료 추상화 변수를 private으로 선언하더라도 값마다 조회함수와 설정함수(getter, setter)를 제공한다면 구현을 외부로 노출하는 셈이다. 변수 사이에 함수라는 계층을 넣는다고 구현이 저절로

2023년 9월 1일
·
0개의 댓글
·

5장 : 형식 맞추기

*<클린 코드>를 참고하여 작성한 글입니다.형식을 깔끔하게 맞추어 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다.형식을 맞추는 목적 : 코드 형식은 의사소통의 일환이기 떄문적절한 행 길이를 유지하라 : 일반적으로

2023년 8월 24일
·
0개의 댓글
·

4장 : 주석

*<클린 코드>를 참고하여 작성한 글입니다.주석은 '순수하게 선하지' 못하다.애초에 주석이 필요 없는 방향으로 에너지를 쏟을 것.진실은 오로지 '코드' 한 곳에만 존재한다. 코드만이 정확한 정보를 제공하는 유일한 출처이다.간혹 필요할지라도, 주석을 가능한 줄이도

2023년 8월 24일
·
0개의 댓글
·

3장 : 함수

*<클린 코드>를 참고하여 작성한 글입니다.작게 만들 것각 함수가 명백하도록, 이야기 하나를 표현하도록.중첩 구조가 생길만큼 함수가 커져서는 안 된다.한 가지만 할 것함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다.지정된

2023년 8월 19일
·
0개의 댓글
·

java 코딩테스트 준비 (기본)

원래 나는 python으로 코딩테스트를 준비하고 있는데, 요새들어 종종 코딩테스트 언어가 java로만 제한된 기업들이 있어 java로 코딩테스트를 급하게 준비할 일이 생기곤 했다. (...) 이번에도 그런 일이 생겨서, java 코딩테스트 작성법을 아예 포스트로 정리를

2023년 8월 18일
·
0개의 댓글
·

2장 : 의미 있는 이름

*<클린 코드>를 참고하여 작성한 글입니다.의도를 분명하게 밝혀라그릇된 정보를 피하라널리 쓰이는 의미가 있는 단어를 다른 의미로 사용하거나, 흡사한 이름을 사용하지 않도록 유의.유사한 표기법을 사용할 것.의미 있게 구분하라연속된 숫자를 덧붙이거나 불용어를 추가하

2023년 8월 12일
·
0개의 댓글
·

1장 : 깨끗한 코드

*<클린 코드>를 참고하여 작성한 글입니다.깨끗한 코드에 대한 정의?비야네 스트로스트룹 : 우아하고 효율적인 코드, 철저한 오류 처리, 한 가지에 집중그래디 부치 : 잘 쓴 문장처럼 읽히는 코드, 명쾌한 추상화와 단순한 제어문데이브 토마스 : 다른 사람이 고치기

2023년 8월 12일
·
1개의 댓글
·

쿼리 실행 오류 해결

개인적으로 오류 해결 요청을 받아서 정말 오랜만에 PHP 코드를 볼 일이 생겼다. 거두절미하고 문제상황에 대해서 설명하면, 다음과 같다. 해당 코드는 하루에 한 번씩 실행되는 코드였는데, DB 테이블(MySQL)에 날짜를 저장해두고 현재 서버의 날짜값과 DB테이블에

2023년 8월 10일
·
0개의 댓글
·

python isalpha(), isdigit()

백준 1431번을 풀면서 해당 문자열이 문자인지 숫자인지 판별할 필요가 있었다. 파이썬에서는 isalpha()와 isdigit()를 활용해서 숫자인지 문자인지 판별할 수 있다.숫자 판별에 쓰이는 함수는 isdecimal(), isdigit(), isnumeric() 이

2023년 7월 12일
·
0개의 댓글
·

정규표현식

백준 1013번을 풀면서 정규표현식을 사용하게 됐다. 직접 파싱하는 절차를 구현할 수도 있겠으나, re 모듈로 정규표현식을 바로 매칭할 수 있으니 그렇게 푸는 게 편할듯하다. (만약 직접 구현한다면 while문 활용하거나 재귀함수 이용해서 풀면 될 것 같다.) 하지만

2023년 7월 10일
·
0개의 댓글
·

python Counter, ord(), chr()

백준 1213번을 풀면서, 나는 알파벳 문자의 개수를 저장하기 위해 배열을 생성해서 직접 하나하나 세는 방식을 사용(...) 했는데 다른 풀이를 보니, Counter을 이용해서 한 번에 개수를 세는 방식을 사용하고 있었다. from collections im

2023년 7월 9일
·
0개의 댓글
·

딥러닝 프로젝트 회고

이번 학기에 수강한 컴퓨터 비전 과목 과제로 프로젝트를 진행했다. 주제는 비전과 관련된 자유 주제였는데, 우리 팀은 Skeleton Detection을 주제로 선정하였다. 교수님께서 논문을 하나 선정해서 구현해보는 방향을 추천하셔서 우리가 선정한 논문은 DeepPose

2023년 6월 28일
·
0개의 댓글
·

캡스톤 프로젝트 회고

교내 캡스톤 디자인 과목으로 앱 개발을 진행하게 되었다. 한 학기동안 진행했는데, 아이디어 선정하는 기간을 제외하면 순수 개발기간은 서버 기준으로는 한달 조금 넘는 기간, 클라이언트 기준으로는 두달 가까운 기간 소요된 것 같다. 추가적으로 이어서 프로젝트를 진행할

2023년 6월 26일
·
0개의 댓글
·