| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- DTO
- php
- jQuery
- ES6
- 정규식
- formula
- 오류
- JavaScript
- react
- DOM
- 객체지향
- strpos()
- node.js
- 현대이지웰java풀스택개발자아카데미6월
- oracle
- 깃허브
- Java
- JDBC
- 노션
- MySQL
- INSERT
- axios
- 배열
- mybatis
- myshortcut
- error
- 멀티캠퍼스it부트캠프
- explode()
- dao
- 부트캠프후기
- Today
- Total
목록TIL (35)
코딩짜는 일상
📚 서론6월 30일부터 12월 19일까지,무려 6개월에 걸친 현대이지웰 풀스택 개발자 아카데미가 드디어 끝났습니다! 이제 아침에 푹 잘 수 있다는 해방감도 있지만! ... 한편으론 매일 아침 얼굴 보고 인사하던 사람들과 헤어진다는 사실이조금은 섭섭하고... 아쉽긴 하네요...ㅎㅎ🥲줌으로만 봐서 아닐 줄 알았는데 나름 정 들었었나봐요ㅠ 단순히 지인의 추천으로 시작하게 된 부트캠프였지만완전히 끝난 지금은 진짜 잘 한 선택이라고 생각됩니다! 저는 비전공자로 개발을 시작한 탓에 개발 용어 자체에 익숙하지 않아의존성, 컴포넌트, 상속, 추상화 같은 단어에 진입 장벽을 느끼고 성장이 멈춰 있었는데요. 지금은 자연스럽게 해당 단어를 사용할 정도로 익숙해졌습니다! 거기다 개인 프로젝트를 시작할 때 구성부터 막..
📚 서론저희 팀은 프로젝트를 프론트와 백엔드로 나누어백엔드에선 DB와 통신하여 데이터를 가공하거나 api로 결과값을 전달하고프론트에선 api의 데이터를 받아 클라이언트를 구성하도록 구조를 짰습니다. 하지만 로컬에서 개발할 땐 localhost:8080이 기본 도메인이 되는 한편배포를 하면 해당 서버의 도메인으로 바뀌어야 합니다. 이걸 배포할 때마다 전부 찾아서 바꿔 넣는 건 매우 비효율적이죠... 그래서 이번 포스팅에선 api의 기본 도메인, base url을 어떻게 관리할 것인지몇 가지 방법을 정리하여 소개하려고 합니다. 🎷 Config 파일로 분리해 관리구조가 단순해서 초보자도 이해하기 좋은 방식입니다. 설정 관련 내용은 전부 config 파일에 모아두기 때문에해당 파일만 읽어도 프로젝트..
📚 서론이번주는... 제가 최근에 어마어마한 업보 청산을 당해서......그것에 대해 기록 해볼까 합니다.🥲 시작은 2개 이상의 테이블을 JOIN하여 데이터를 가져올 때2개 테이블들의 필드가 전부 있는 별도의 DTO를 만들어야 하는 번거로움에서 시작되었습니다. 이때 강사님께 Map를 사용하여 데이터를 받는 방법도 있다고 조언 받았고 단일 테이블을 조회하는 게 아니면 대부분 Map을 이용하여 서비스를 구현하게 되었습니다.🤪 프로젝트 초반에는 별 문제가 없었는데중반 쯤 지나 구현할 리엑트 컴포넌트가 늘어나면서작업을 좀 줄여보려고 컴포넌트를 분리하고 재사용하면서 문제가 생겼습니다.😓 1️⃣ 필드명 스타일 통일의 필요성오라클은 큰따옴표(")를 쓰지 않는 한 대소문자 구분을 하지 않습니다. 때문에 테이..
📚 서론지난주에 이어 프로젝트에서 MyBatis로 기능을 구현할 때 php와의 차이점을 정리해 보겠습니다. php는 디테일하게 언급 안 할거라 써보신 분들을 독자로 가정하고 쓴 글이라고 보시면 될 것 같습니다. 주인공은 어디까지나 MyBatis와 오라클이니까요! 🎷 INSERT 직후 기본키(Primary key) 가져오기현재 저희 프로젝트의 상품 데이터에는 일반적인 상품 데이터 외에도그 상품에 포함되는 성분에 대한 데이터도 저장되고 있습니다. 성분 데이터는 저희 프로젝트의 핵심이라상품 데이터 외에도 여러 테이블과 JOIN되어야 하기 때문에별도의 매핑 테이블을 만들어 JOIN할 때 참조로 사용하고 있습니다. 그래서 새로운 상품을 등록하려면,먼저 상품을 등록한 후에 기본키(Primary key..
📚 서론과거 PHP를 쓸 때는 sql_query() 함수를 사용해 DB 통신을 구현했었습니다. 쿼리를 문자열로 작성해 param으로 제공하면 되는 간단한 방식이기에if문을 이용한 문자열 편집으로 간단하게 쿼리를 조립할 수 있었지만... 사실 이건 인젝션 공격에 취약하기 때문에 그리 현명한 선택은 아니었습니다.😥 물론 자체적으로 입력값에 UNION을 차단하는 기능을 추가해 방어했지만 여전히 위험요소가 있었죠...🥲 현재 팀 프로젝트에선 MyBatis를 채택해 DB 통신을 구현하고 있습니다. SQL을 직접 작성할 수 있어서 복잡한 쿼리 작성이 번거롭지 않고쿼리는 모두 XML에 모아두기 때문에 유지보수나 협업에도 용이하고무엇보다 값 바인딩 #{} 을 통해 입력값을 쿼리에 삽입하기 때문에 SQL 인젝션을..
📚 서론이번 주 포스팅은 MSA (MicroService Architecture)에 대해 써보겠습니다. 사실 특강은 몇 주 전에 했는데 그땐 내용 정리도 덜 됐고무엇보다 오라클 비교글이 너무 잘 써진 바람에 어쩔 수 없었습니다...덕분에 ERD를 몇 번을 갈아엎었는지...🫠 그렇게 속 썩인 것 치곤 테이블 생성 이후엔 별다른 차이점은 없습니다. 테이블 생성에만 이렇게 차이가 나는 걸 보면...어쩌면 데이터베이스의 핵심은 테이블 구조에 있는 걸지도 모르겠네요.🤔 🎷 MSA 탄생 배경전통적인 웹 애플리케이션 구조는프론트 엔드, 백엔드, 데이터베이스로 나뉘는 3계층 아키텍처입니다. 예시로 홈페이지에 게시판을 하나 추가한다고 해보죠. 가장 먼저 DBA에서 게시판의 데이터를 담을 테이블을 생성할..
📚 서론이번 주는 제가 장기간 써오던 MySQL과현재 참가중인 풀스택 개발자 과정에서 배운 오라클의 차이점을 알아보겠습니다. 사실 둘 다 SQL을 베이스로 하기 때문에 달라봐야 얼마나 다르겠냐 싶었는데프로젝트를 시작하고 실제로 테이블을 만들어보니까 차이점이 확연히 와닿았습니다. 그리고... 오라클이 다소... 조금... 까다로운... 편인 것 같습니다...🥹 그래도 어렵고 까다로울수록 사람보단 기계(?) 친화적이라는 뜻이니까잘만 쓸 수 있다면 사용자에게 더 좋은 서비스를 제공할 수 있을 겁니다! 실제로도 MySQL 보다는 오라클이 복잡한 계산이나 대량의 데이터 분석에 강하다고 합니다. 대량의 텍스트 정보에서 원하는 서치를 빠르게 해주는 CTXSYS.DRITHSX.SN 같은 기능도 제공하고 있습니다...
📚 서론과거 제가 깃을 활용하던 방법은 브런치명을 추가하려는 기능명으로 만들어서완성되면 main에 Merge 하는 식의 매우 단순한 운용이었습니다. 그러다 이번 팀 프로젝트를 진행하면서 좀 더 자세히 다루게 되었는데요. 저희팀은 GitFlow 전략을 일부 채택해서 main과 develop 브런치를 기본으로 두고깃허브에서 이슈를 생성, 이슈번호를 토대로 브런치를 만들어 작업 내용을 Commit하기로 했습니다. 기능을 완성한 후에는 pull request를 생성해 develop과 Merge하고문제가 없으면 다시 pull request를 생성해 main과 Merge하는 방식입니다. 그런데 여기서 또 문제가 생깁니다. (매일이 문제 해결의 연속...🥹) 저는 깃허브에서 단순히 Repositories만 생성..