다음은 로버트 C. 마틴 Clean Code(클린 코드)를 읽고, 정리한 내용입니다. 나쁜 코드에 주석을 달지 마라. 새로 짜라. - 브라이언 W.커니핸, P.J. 플라우거 - 주석은 필요악 주석은 '순수하게 선하지' 못하다. 사실 상 주석은 기껏해야 필요악이다. 프로그래밍 언어 자체가 표현력이 풍부하다면, 아니 우리에게 프로그래밍 언어를 치밀하게 사용해 의도를 표현할 능력이 있다면, 주석은 거의 필요하지 않으리라. 아니, 전혀 필요하지 않으리라. 우리는 코드로 의도를 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. 여기서 내가 실패라는 단어를 썼다는 사실에 주목한다. 진심이다. 주석은 언제나 실패를 의미한다. 때때로 주석 없이는 자신을 표현할 방법을 찾기 못해 할 수 없이 주석을 사용한..
전체 글
AI와 개발에 대한 공부 기록 아카이브. 실험, 정리, 깨달음을 남겨두는 공간입니다.다음은 로버트 C. 마틴 Clean Code(클린 코드)를 읽고, 정리한 내용입니다. 작게 만들어라! 함수를 만드는 첫째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다. public static String renderPageWithSetupsAndTeardowns( pageData pageData, boolean isSuite) throws Exception{ if(isTestPage(pageData)) includeSetupTeardownPages(pageData, isSuite); return pageData.getHtml(); } 블록과 들여쓰기 다시말해, if 문/else문/while 문 등에 들어가는 블록은 한 줄이어야 한다는 의미다. 한 가지만 해라! 함수는 한 가지를 해야..
다음은 로버트 C. 마틴 Clean Code(클린 코드)를 읽고, 정리한 내용입니다. 의도를 분명히 밝혀라 "의도가 분명하게 이름을 지으라"라고 말하기는 쉽다. 여기서는 의도가 분명한 이름이 정말로 중요하다는 사실을 거듭 강조한다. 좋은 이름을 지으려면, 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. public List getThem(){ List list1 = new ArrayList(); for(int[] x : theList) if(x[0] == 4) list1.add(x); return list1; } 다음 코드는 무엇을 할까? (theList에 저장된 배열들 중에서 첫 번째 요소가 4인 배열들을 추출하여 리스트로 반환하는 메서드) 다음은 theList를 추론한 형태이다. the..
다음은 로버트 C. 마틴 Clean Code(클린 코드)를 읽고, 정리한 내용입니다. 원초적 난제 프로그래머는 근본적인 가치에서 난제에 봉착한다. 한 두해 이상 우리 분야에 몸담은 프로그래머라면 누구나 나쁜 코드가 업무 속도를 늦춘다는 사실을 익히안다. 그럼에도 모든 프로그래머가 기한을 맞추려면 나쁜 코드를 양산할 수밖에 없다고 느낀다. 진짜 전문가는 두번째 부분이 틀렸다는 사실을 잘 안다. 나쁜 코드를 양산하면 기한을 맞추지 못한다. 오히려 엉망진창인 상태로 인해 속도가 곧바로 늦어지고, 결국 기한을 놓친다. 기한을 맞추는 유일한 방법은, 그러니까 빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다. 깨끗한 코드는 한 가지를 제대로 한다 마지막으로 비야네는 깨끗한 코드란 한가지를..
프로젝트의 폴더구조 app > java > com.example.myfirstapp > MainActivity 이는 기본 활동으로, 앱의 진입점입니다. 앱을 빌드하고 실행하면 시스템에서 이 Activity의 인스턴스를 실행하고 레이아웃을 로드합니다. app > res > layout > activity_main.xml 이 XML 파일은 활동의 사용자 인터페이스(UI) 레이아웃을 정의합니다. 이 파일에는 'Hello, World!'라는 텍스트가 있는 TextView 요소가 포함되어 있습니다. app > manifests > AndroidManifest.xml 매니페스트 파일은 앱의 기본 특성을 설명하고 앱의 각 구성요소를 정의합니다. Android Layout Editor의 기능과 계층구조 Android ..
안드로이드 스튜디오는 코드작성과 빌드가 분리됨! vscode와 같은 IDE(통합개발환경)을 사용하면, javascript 코드를 작성한 후에 “어떻게 컴파일을 하세요, 어떻게 빌드를 하세요.” 와 같은 내용을 작성한 기억이 없는데, 왜 안드로이드 스튜디오는 빌드에 관한 설명이 필요한 걸까? - 그 이유는 안드로이드 스튜디오는 코드작성과 빌드가 구분되어 있기 때문이다. 안드로이드 스튜디오는 코드 편집만 하는 IDE이고, 빌드는 gradle 파일에서 설정을 하고, 라이브러리를 받아서 수행한다. +참고 빌드와 컴파일? 빌드란 코드를 실행가능한 형태로 변환하는 것, 컴파일은 빌드 프로세스 안에 포함되며, 사용자가 작성한 코드를 기계어나 중간 언어로 변화시키는 것 이구나 매니패스트 파일이란? 이 코드들을 ‘빌드(..
풀이방법 1. 변곡점 기준으로 도형을 자른다 2. 위 삼각형의 너비길이를 기준으로, 아래 삼각형의 너비길이를 구한다. 3. 주의 ! - 두번째 반복문식에서는 i와 관련있는 식을 쓸것, 그렇지 않으면(만약 number 기준) 사각형이 만들어짐 import java.util.Scanner; public class 마름모 { public static void main(String[] args) { int number = scan.nextInt();// 스캔값이 1일때 그냥 *이 나오는 것을 피하고 싶다면 +1을 해도 좋다 int number = scan.nextInt(); int maxWidth = 2 * number -1; //1. 위 삼각형 for (int i = 0; i < number; i++) { f..
대표적인 토큰 기반 인증기술로는 JWT 가 있습니다. JWT (JSON Web Token) 데이터 전송에 사용하는 대표적인 토큰기반 인증기술로, JSON 형식으로 저장한 정보(payload)를 암호화(서명)하여 전송합니다. 클라이언트가 서버에 요청을 보낼때 인증정보를 암호화된 JWT 토큰으로 제공하고, 서버는 이 토큰을 검증하여 인증정보를 확인할 수 있습니다. JWT의 구성요소 JWT는 어떻게 토큰을 암호화하고 이를 검증하는 지 알아봅시다 JWT 기술로 만든 토큰은 보통 다음과 같은 형식의 문자열로 이루어집니다 여기에서 점(.)이 찍힌 부분을 기준으로 헤더(Header) , 페이로드(Payload), 시그니쳐(Signiture) 이렇게 3부분으로 나뉩니다 헤더(Header) 가장 앞에 위치한 헤더에는 마..