velog 블로그에서 tistory로 이전한 데이터 입니다. 들어가기 전, 로버트 C. 마틴의 "클린코드"를 읽다가 평소에 고민이던 부분을 풀어 줄 수 있던 내용이 있었습니다. 내용 "처음부터 올바르게" 시스템을 만들 수 있다는 믿음은 미신이다. 대신에 우리는 오늘 주어진 사용자 스토리에 맞춰 시스템을 구현해야 한다. 내일은 새로운 스토리에 맞춰 시스템을 조정하고 확장하면 된다. 이것이 반복적이고 점진적인 에자일 방식의 핵심이다. 테스트 주도 개발(TDD), 리팩터링, 깨끗한 코드는 코드 수준에서 시스템을 조정하고 확장하기 쉽게 만든다. 이해 즉, 시스템 수준(도시 전체)과 코드 수준(건물,도로)은 별개의 일로 구분해야 한다. 이래서 아키텍쳐 설계자와 개발자가 따로 있는 이유인가보다. 시스템 수준 문제를..
Content-Type이 무엇이며 그중 application/x-www-form-urlencoded 이 담당하는 역할이 무엇인지 알아보자. 그리고 실무에서 발생한 문제와 해결과정을 살펴보자 1. Content-Type 이란? Content-Type에 들어가기 전, 네트워크 이야기를 잠깐 하겠다. 네트워크는 서로다른 두 매체(클라이언트 or 서버)가 데이터(리소스)를 주고 받는 단위다. 여기서 주고 받기 위해서는 프로토콜(규칙)을 서로 지키게 된다. Content-Type은 리소스의 타입을 나타내기 위해 사용된다. https://www.iana.org/assignments/media-types/media-types.xhtml https://developer.mozilla.org/ko/docs/Web/HTT..
JVM - JRE - JDK에 대해서 알아보자 JVM(Java Virtual Machine) 컴파일된 코드(.class)를 OS에 맞게 해석해서 동작하는 머신 벤더사로는 Oracle, Amazon, Azul 등 특정 플랫폼에 맞춰서 동작하도록 작성이 됨 JRE(Java Runtime Environment) 구성요소 : JVM + 자바를 실행하는 데 필수적인 라이브러리 + 프로퍼티 개발관련 도구는 포함하지 않는다. 자바 어플리케이션을 실행할 수 있도록 만들어진 배포판 JDK(Java Development Kit) 구성요소 : JRE에 Development Tools가 함께들어간다. 대표적인 요소로 javac (java compiler) javap (java profiler) javadoc (java doc..
소프트웨어 개발 프로세스는 왜 필요할까? 스스로 생각해본 적이 있나? 많이 생각할 유형은 아래와 비슷할 것 같다. 1. 사람들이 하도 많이 이야기 하니까 2. 시간안에 잘 마무리 하려고 3. 목표를 이루는데 필요해서 모두 맞는 이야기다. 여기에 내용을 좀 더 넣어볼 예정이니 들어보면 좋겠다. 소프트웨어는 공학적인 산물이라고 생각한다. 그렇다면 소프트웨어는 컴퓨터공학에 있어 빠질 수 없는 데 이를 통해 무엇들을 얻을 수 있을까? 1. 계획서 2. 설계도 3. 코드(프로그램) 4. 테스트 ... 다양하다. 이 모든걸 합쳐서 소프트웨어라고 한다. 공학이란 무엇인가? 어떤 요구사항이나 문제를 배움(기술)을 통해서 정해진 시간과 비용안에서 해결할 수 있는 학문이라고 본다. 앞서 공학적인 산물이라는 표현을 사용했다..
스프링에서 작업을 하다보면 /static/** , /static/* 처럼 어떤 정규표현식을 사용하고 있는데 알아둘 필요가 있었다. 표현식으로 Ant Pattern을 사용하기에, *, **, ? 에 대해서 알아보자. ? 1개의 문자와 매칭 * 0개 이상의 문자와 매칭 ** 0개 이상의 디렉토리와 파일 매칭 @Test public void antStylePatternTest() { // ** 예시 assertThat(true, is(checkAntPattern("/static/**", "/static/a.jpg"))); assertThat(true, is(checkAntPattern("/static/**", "/static/a/b/c/d/e/f/g/a.jpg"))); assertThat(true, is(ch..
Transaction Query(질의)를 하나의 묶음으로 처리해서 중간에 실행이 중단될 경우, 처음부터 다시 실행하는 Rollback을 수행 오류없이 실행을 마치면 commit을 하는 실행단위를 의미한다. 즉, 한 번 Query가 실행되면 All or Nothing으로 작업을 처리한다. 데이터베이스 상태를 변화시키는 복수의 연산 단위로 구성된 하나의 논리적인 작업단위 주로 DBMS에서는 TPS로 초당 Transaction 실행 수를 측정하고 있음. Transaction을 사용하는 이유 Transaction은 DB서버에 여러 클라이언트가 동시에 엑세스 또는 업데이트를 처리하는 과정에서 발생할 데이터 부정합을 방지하고자 사용 부정합이 일어나지 않으려면 병렬로 처리하지 않도록 하면 되지만 효율이 떨어짐. 병렬..
- Total
- Today
- Yesterday
- 디미터법칙
- S3
- 디자인시스템
- 점진적개선
- 너디너리데모데이
- JRE
- 동기/비동기
- 소프트웨어개발프로세스
- nodejs
- 개발기록
- 트랜잭션
- HTTP
- charset
- LTS 개선
- application/x-www-form-urlencoded
- AntPattern
- SSAFY 특화프로젝트 회고
- 2022년 회고
- 자바기초
- SSAFY 퇴소
- Content-Type
- 클린코드
- 콘웨이법칙
- nodejs 버전 관리
- 개발프로세스
- PresignedURL
- UI/UX
- 필수단어
- 블로킹/논블로킹
- PUT vs POST
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |