* 불변 객체(Immutable Object)는 객체가 생성된 이후 내부 상태가 바뀌지 않는 객체를 말한다.String s = "hello";s.toUpperCase(); 위 코드에서 s의 값은 바뀌지 않는다. toUpperCase()는 새로운 String을 만들어서 반환한다. Spring Bean은 기본이 싱글톤이다Spring에서 별도 설정을 하지 않으면 모든 Bean은 애플리케이션당 하나의 인스턴스만 생성된다.즉, [여러 요청, 여러 사용자, 여러 스레드] 가 하나의 객체를 공유한다. 싱글톤 Bean에 상태를 두었을 때의 위험- 상태 : 객체가 들고 있는 값 중, 외부 요청에 따라 변할 수 있는 것@Servicepublic class PaymentService { private Str..
@Transactional의 커밋시점 테스트@Entitypublic class Member { @Id @GeneratedValue private Long id; private String name; protected Member() {} public Member(String name) { this.name = name; }}@Servicepublic class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberR..
멀티 스레드 환경에서 개발하다보면 동시성에서는 ConcurrentHashMap을 사용하면 좋다~ 정도로 알고 있었는데,최근에 코드를 보다가 왜 좋은건지 궁금해져서 정리해봤다 HashMap vs Hashtable vs ConcurrentHashMap 구분동기화특징HashMapx가장 빠르지만 멀티스레드 환경에서 위험Hashtableo모든 메서드에 synchronized, 성능 저하 큼ConcurrentHashMapo필요한 부분만 동기화, 성능과 안정성 균형 Hashtable은 전체에 락을 걸고, ConcurrentHashMap은 동시성을 최대한 허용하는 방향이라는 점이 핵심인듯? ConcurrentHashMap의 장점1. 전체 락을 사용하지 않는다예전 JDK에서는 Segment 단위 락을 사용했고,..
swap 관련# swap 상태free -htop# swap 비활성화swapoff -a# swap 다시 활성화swapon -a# 비활성화 활성화 같이swapoff -a && swapon -a 톰캣관련# 톰캣 확인ps -ef | grep tomcat# Tomcat 중지./shutdown.sh# 완전히 내려갔는지 확인ps -ef | grep tomcat# 재기동./startup.sh#포트사용여부netstat -ntlp | grep 포트번호 cron 관련# cron 정지service crond stop# 현재 crontab 확인crontab -l# crontab 편집crontab -e# 시간포맷* * * * *| | | | || | | | +-- 요일 (0~7)| | | +---- 월 (1~12)| | ..
* Git Bash 사용 1. Git Bash 설치https://git-scm.com/참고 : https://velog.io/@selenium/Git-Git-Bash-설치-Windows-OS 2. 작업 폴더 생성로컬 pc에서 작업할 폴더 생성 (나는 F:\gitLabTest) 3. Git 저장소 생성작업폴더 → 우클릭 → Open Git Bash here 실행#해당 폴더를 깃 지역 저장소로 설정$ git init .git 파일이 생성되면 정상적으로 설정된 것 4. (선택) SVN 사용자와 GitLab 사용자 매핑SVN 사용자명 = Git사용자명 [Git메일주소] ex : 먹태 = Meoktae Meoktae@test.com❗ 매핑을 할려면 해당 프로젝트를 한번이라도 커밋한 사용자 모두 해야..
Workflow에 일부러 실패하는 Step만들어서 멈추는거 확인해보는 소스 # ===============================# Github Actions Job / 일부러 실패 처리# ===============================name: CI/CD 연습 - Job 흐름 & 실패 TESTon: push: branches: - mainjobs: # 첫 번째 Job first-job: runs-on: ubuntu-latest steps: - name: 첫 번째 Job 시작 run: echo "first-job 시작" - name: 정상적으로 끝나는 Step run: | echo "여기까지는 문제 X..
CI/CD : Continuous Integration / Continuous Deployment - CI/CD는 개발 프로세스에서 코드 통합(Integration), 테스트(Test), 배포(Deployment) 과정을 자동화하여 개발 효율성과 품질을 높이는 핵심 DevOps 개념이다 - Continuous Integration (CI): 개발자가 작성한 코드를 중앙 저장소(GitHub 등)에 지속적으로 병합하며, 코드 변경 시 자동으로 빌드와 테스트를 수행해 문제를 조기에 발견한다. - Continuous Deployment (CD): CI 단계에서 검증된 코드를 자동으로 배포(Deploy) 환경에 반영하여, 수동 개입 없이 최신 버전이 서비스에 반영되도록 한다. Github Actions를 활용..
* 비용 청구 내용 조회하다가 IAM 계정에서는 관리자에게 권한을 추가하도록 요청하라는 경고만 뜨길래 정리한 차이점 1. Root 계정Root 계정은 AWS 계정을 처음 생성할 때 설정하는 계정으로, 해당 AWS 계정에 대한 최고 관리자 권한을 가지고 있다. - 최고 관리자 권한: Root 계정은 모든 AWS 서비스와 리소스에 대한 완전한 접근 및 관리 권한을 가진다- 비밀번호 및 MFA 설정: Root 계정에 대한 보안을 강화하기 위해 다단계 인증(MFA, Multi-Factor Authentication)을 활성화를 할 수 있다- 결제 정보 관리: AWS 계정의 결제 및 청구 정보를 관리할 수 있는 유일한 계정이다- 계정 복구: 계정 비밀번호 분실 시, Root 계정을 통해 계정을 복구가능- 서비스..
AWS 입문 / 실전by. 박재성(인프런) 완강 후기 : 현 직장에서는 AWS를 접할 기회가 적어서 따로 공부한건데 진짜 너무 재미있게 공부했다. Express 서버가 나올땐 그게 뭔디요 싶긴 했는데 ㅋㅋㅋ 진짜 개념하나하나 자세하게 설명해주기도 하고 현업에서 자주 쓰는거 위주로 알려줘서 일주일만에 완강 해버림! EC2, ELB, Route53, S3, RDS 등등 너무 잘배워 간다. 2회차로 한번 더 돌려보고 다음 개인 프로젝트나 토이프로젝트 할때 써봐야지 * 내용은 노션에 정리한거 캡쳐
넓고 얕게 외워서 컴공 전공자 되기by. 널널한 개발자(인프런) 완강 후기 : CS공부는 할때마다 A로만 알고 있던거를 A+,A++, A+++가 되는 느낌이다. 그래서 시작하기만 하면 오히려 흥미 돋아서 하루에 몇개씩 쫙 들어버리는 날들도 많다. 이번에 들었던 널널한 개발자님의 강의도 업무에서 봐왔던 것들, 오고가며 스쳐지나갔던 것들을 더 이해하기 쉽게 설명해주셔서 지루하지않고 재미있게 들엇던 강의다. 이 다음 스텝도 있던데 이벤트나 쿠폰 들어오면 바로 들어볼 생각 ! 섹션 1- 1비트와 디지털- 4비트와 16진수 그리고 진법변환- 16진수 표기가 사용되는 예 (색상표현, 컴퓨터 하드웨어 주소 표현, 메모리 값 표현)- 외워야 할 단위 체계와 숫자 * 8개 비트를 하나로 묶어 1바이트(byte) ..
- Total
- Today
- Yesterday