본문 바로가기
반응형

전체 글150

변수 메모리 할당 (간단 정리) 메모리 할당 프로그램이 실행되어 메모리에 올라갈때는 해당 프로그램이 사용가능한 메모리 영역을 os로 부터 할당 받는다. 할당 받은 메모리는 크게 4부분으로 나뉜다. 데이터 영역 코드 영역 스택 영역 힙 영역 데이터 영역 상수 값, 정적 변수, 글로벌 변수 등이 할당, 선언된다. 프로그램의 실행과 함께 메모리위에 올라가고, 종료와 함께 메모리에서 해제된다. 그렇기 때문에 정적 변수에 메모리가 큰 값을 할당하는 걸 조심해야 한다. 코드 영역 프로그램의 코드(명령어)가 저장된 공간이다. 해당 명령어를 통해 프로그램의 실행이 제어 된다. 스택 영역 함수 실행시 해당 영역에 필요한 메모리가 할당된다. 함수 내 지역변수, 매개변수, 함수 리턴값 등이 메모리 위에 올라간다. 함수 종료시 해당 영역은 해제되며 재귀 함.. 2023. 7. 31.
transaction에 대한 구구절절 transaction이 뭔지? 수행 시 분할할 수 없는 작업의 단위 작업 수행이 되던가(commit) / 아니면 해당 작업 전체가 취소 (rollback) DB에서는 부분적으로 업데이트되어 부정합이 일어나는 걸 방지하기 위해 동작하는 작업의 최소 단위를 의미 acid 성질 데이터의 부정합을 막기 위해서는 아래의 ACID 라는걸 만족해야 한다 원자성(Atomicity) 위에 적어 놨듯이 하나의 작업이 더 이상 쪼갤 수 없음을 의미 하나의 작업이 모두 commit 되던가 / 모두 rollback 되어야 함 예를 들어 100개의 행에 대한 update 작업을 하나의 transaction으로 처리할 때 99개의 작업 완료 + 1개의 작업 실패 시 100개 전부 update 작업 X (rollback) 일관성(C.. 2023. 7. 26.
FK-FK table springboot @ID 매핑 토이 프로젝트 만들다가 막혀서 비슷하게 한번 만들어본 상황. 요구사항 사용자가 메뉴를 보고 주문을 한다. 메뉴들이 여러 개 있고, 주문 내용에는 메뉴”들” 정보와 요구사항이 포함되어 있을 때 테이블로 위 요구사항을 저장하려면? 뭐… 정답은 없겠지만 내가 구성한 건 아래와 같다. orderInfo 테이블은 주문정보를 저장하는 테이블이다. 사용자의 요구사항을 저장하는 orderDesc 컬럼과 등록시각을 저장하는 regDate 컬럼이 존재한다. item 테이블은 메뉴 정보를 저장하는 테이블이다. 메뉴 이름을 저장하는 name 컬럼과 가격을 저장하는 price 컬럼, 등록시각을 저장하는 regDate컬럼이 존재한다. orderItem은 주문 정보에 포함되는 메뉴들을 저장하는 테이블이다. 주문 정보는 여러 개 저.. 2023. 6. 21.
javascript 변수 관련 간략정리 (변수, 스코프, 호이스팅, 클로져, 함수, 즉시 실행 함수) 이력서에 " js 써봤다" 혹은 "쓸 줄 안다."라고 적으면 물어보는 것들이 있는데 여러 번 질문받았던 변수 관련 개념들에 대해 정리해 봤다. (js에 대해 잘 모른다고 답변했음에도 불구하고! 매번 물어보는!!) 변수 변수는 값을 저장하는 메모리 공간! 크게 3가지의 상태로 나타남 1. 선언 변수를 정의 (정보를 담을 공간을 정의) let variable; 2. 초기화 선언된 후, 값을 넣어 정의 (공간을 만들고, 공간에 정보를 집어넣기) let variable = "hello world"; 3. 할당 코드가 실행될 때 (run) 메모리 위에 변수 공간이 지정된 상태 스코프(scope, 범위 혹은 그냥 스코프) 변수의 유효한 범위 해당 변수를 사용할 때 접근이 가능한 범위라고 해석하면 문제없을듯하다. 변.. 2023. 6. 14.
spring boot login 중복 로그인 방지 저번 spring boot의 기본 로그인을 구현했다. spring boot 로그인 (+spring security, mysql) spring boot 로그인 (+spring security, mysql) springSecurity 사용 pom.xml 에 아래와 같이 security 설정 추가 org.springframework.boot spring-boot-starter-security {프로젝트이름}Application.java 가 존재하는 폴더에 config folder 생성 + securityConfig.java 생성 demo.config.Se hoonzi-text.tistory.com 이전 로그인 코드에 중복 로그인 방지를 추가해보자. 중복 로그인 방지 로직을 넣기 위해 기본 로그인 페이지가 아닌.. 2023. 5. 28.
spring boot 로그인 (+spring security, mysql) springSecurity 사용 pom.xml 에 아래와 같이 security 설정 추가 org.springframework.boot spring-boot-starter-security {프로젝트이름} Application.java 가 존재하는 폴더에 config folder 생성 + securityConfig.java 생성 demo.config.SecurityConfig에 기본적인 코드 추가 @Configuration public class SecurityConfig{ @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf().disable() .cors().disable() .authoriz.. 2023. 5. 28.
[18, 9].sort() = [18, 9] javascript sort weird... [18,9]를 sort 하면 어떻게 될까? array에 많이 들어있지도 않다. 숫자는 딱 2개… 겨우 단 2개… 컴퓨터를 사용하지 않고도, 심지에 이제 막 숫자를 배우기 시작하는 어린아이에게 18이 큰지, 9가 큰지 작은 숫자 순서대로 줄을 세워볼까? 라고 물어보면 단번에 답을 내릴 수 있는 아주 쉬운 문제다. 그런 줄 알았다. 단, javascript에게만 빼고 말이다…. 진짜 이게 무슨 말도 안 되는… 자.. 자.. 진정하고 가끔 그런 게 있을 수 있다. (아니 말도 안 되지만) 숫자라고 안 받아들이고 문자로 바꿔서 그런 거 아닐까? 제대로 정렬하기 위해서는 sort function의 인자값으로 내가 정의한 compare function(비교 함수)을 넣어줘야 한다. 아래와 같이 말이다. [18, 9.. 2023. 5. 4.
Identifier '변수' has already been declared check 이번에 js 코딩하면서 새로 발견한 오류와 그에 대한 해결책에 대해서 써보려 한다. 내가 만난 문제는 let을 중복 선언하게 되면서 let으로 선언한 변수가 재 선언될 수 없다는 에러 표시를 만났었다. Identifier '변수' has already been declared check @@: 아니 당연히 중복으로 선언하면 안 되지;; 당연히 알고 있다. 하지만 상황은 이랬다. html 안에 탭을 선택하면 서버에서 html을 불러와 내부에 넣게 되는데, 이때 삽입되는 html이 가지고 있는 js 파일 내 변수명과 외부에 이미 선언된 html 간의 let이 충돌하는 문제였다. 문제를 재연하기 위해 간단하게 만들어 보았다. index.html 간단하게 html(index.html)을 만들었다. 본인이 실행하.. 2023. 4. 3.
excel hyper link 삽입시 주의 사항 (# -> %23 이 될때) 이번에 자바로 엑셀에 값을 넣고 생성하면서 문제가 생긴 부분이 생겼고, 해결하는 과정을 적어보고자 한다. 기존에 엑셀에 외부링크를 넣을 때 (정확히는 인터넷 페이지 주소, url) 아래와 같이 코드를 짰었고, 문제가 없었다. String link = ""; HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("sheet1"); HSSFRow row = null; HSSFCell cell = null; row = sheet.createRow(0); cell = sheet.createCell(0); cell.setCellValue(link); Hyperlink link_article = workbook.getCr.. 2023. 4. 2.
반응형