본문 바로가기

전체 글29

Redis LUA Script print("Hello Lua World!")local value = 10 + 1print(value)if value > 0 then print ('value is positive')end if value ~= 0 then print("value is non zero")endif value == 11 then print("value is 11")endlocal country = {"south korea", "UC","north"}print(#country)table.insert(country,"ckck")print(country[4])for i,v in ipairs(country) do print(i,v)end for i =1, 5 do print(i)endlocal car.. 2024. 6. 24.
Java Entity코드를 Kotlin Entity로.. User.java @Entity public class JavaUser { @Id @GeneratedValue(strategy = IDENTITY) private Long id; @Column(nullable = false) private String name; private Integer age; @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private final List userLoanHistories = new ArrayList(); public JavaUser() { } public JavaUser(String name, Integer age) { if (name.isBlank()) { throw n.. 2024. 1. 9.
Java Service코드를 Kotlin Service코드로.. UserService.java @Service public class JavaUserService { private final UserRepository userRepository; public JavaUserService(UserRepository userRepository) { this.userRepository = userRepository; } @Transactional public void saveUser(UserCreateRequest request) { User user = new User(request.getName(), request.getAge(), Collections.EMPTY_LIST,null); userRepository.save(user); } @Transactional(rea.. 2024. 1. 8.
Java Controller를 Kotlin Controller로 UserController.java @RestController public class UserController { private final UserService userService; public UserController(UserService userService) { this.userService = userService; } @PostMapping("/user") public void saveUser(@RequestBody UserCreateRequest request) { userService.saveUser(request); } @GetMapping("/user") public List getUsers() { return userService.getUsers(); } @PutMapping(".. 2024. 1. 8.
JAVA DTO를 Kotlin DTO로.. JAVA DTO를 Kotlin DTO로 변환하기. JAVA로 만들어진 UserResponse DTO이다. 생성자가 존재하며 getter가 존재한다. UserResponse.java public class UserResponse { private final long id; private final String name; private final Integer age; public UserResponse(User user) { this.id = user.getId(); this.name = user.getName(); this.age = user.getAge(); } public long getId() { return id; } public String getName() { return name; } pub.. 2024. 1. 8.
Redis를 활용한 레이스 컨디션 개선. 레이스 컨디션이란? 멀티쓰레드 환경에서 공유자원을 경합하며 벌어지는 동기화 문제가 발생한 현상. 레디스의 INCR 활용한 간단한 해결방안 INCR은 Redis에서 제공하는 명령 중 하나로, "increment"의 약어이다. 이 명령은 키에 저장된 값이 정수일 경우에만 사용할 수 있다. 키에 저장된 값을 1씩 증가시킨다. SET mykey 10 INCR mykey 위 예제에서 mykey의 초기 값은 10으로 세팅했다. INCR mykey를 실행하면 mykey의 값이 1이 증가하여 11이 된다. 이 명령은 분산 환경에서도 안전하게 사용할 수 있어서, 여러 클라이언트가 동시에 INCR을 실행해도 서로 간섭 없이 값이 증가한다 코드를 통해 알아보자 @Repository public class RedisRepos.. 2023. 11. 30.
가상면접사례로 배우는 대규모 시스템 설계 기초 종합평 시스템설계는 개발자에게 무조건 알아야하는 부분이다. 단순히 SI성 개발이 아니라면, 회사는 여러개의 서비스를 운영하고 있다, 고객들이 사용하는 상용서비스, 내부 직원들이 사용하는 관리자 서비스. 대리점들이 사용하는 서비스, 암호화 파일 서버 등 고객 눈에 보이는 서비스는 빙산의 일각이다. 그렇기 때문에 입사하고 가장 먼저 해야하는것이 시스템을 파악하고 서버를 파악하는것이다 WEB,WAS,DB 각각 여러대의 서버가 있고, 이중화까지 되어있다면 정말 수십대의 서버가 돌아간다 이걸 쉽사리 파악하긴 쉽지않다. 하지만 자주 사용하거나 담당하게된 부분의 시스템은 빠르게 이해해야한다. 그러기 위해선 해당 지식이많이 필요한데 이책은 상당히 도움이 된다. 구매하여 읽어보기를 강추한다. 1장 사용자 수에 따른 규모.. 2023. 11. 12.
AWS EC2 우분투에 배포자동화 만들기 (3) - ssh연동 및 배포 이번 단계에서 ssh연동 후 springboot 내장톰캣으로 배포하는것으로 마무리 하겠다. jenkisn plugin에 Public Over SSH 설치 jenkins관리 -> 시스템 -> 맨 하단 SSH Servers Name 서버이름을 짓고싶은대로 지으면된다. Hostname EC2 host를 적는다. username: 인터넷을 찾아보면 계정이 ec2-user있는가본데, 본인은 ubuntu 이므로 ubuntu로 적었다. 고급 버튼을 클릭하여 Use password authe..~~~ 를 체크한다. key에는 ec2 접속할때 사용하는 ppk를 pem파일로 변환한 값을 적어 주면된다. 보통 puttygen 파일을 사용한다. Test Configuration을 클릭하면 좌측 하단에 Success라고 나온다.. 2023. 11. 5.